如何知道我点击的item的Id?我的代码如下:
$(function() {
ipl.mvc.view.openings_view = ipl.mvc.view.view_base.extend({
template: '/assets/t/plmt/companies.tmpl.html',
ID: '#tmpl_openings',
events: {
"click #edit": "editpost"
},
initialize: function() {
var _this = this;
_.bindAll(this, 'addOne', 'addAll', 'render', 'editpost');
_this.loadTemplate(_this.template, function() {
_this.model = new ipl.mvc.model.companies_model([]);
_this.model.view = _this;
_this.model.bind('change', _this.render, _this);
});
}
,
render: function() {
var _this = this
jsonData = _this.model.toJSON();
_.each(jsonData, function(model) {
$(_this.ID).tmpl(model).appendTo(_this.el);
return _this;
});
}
,
editpost: function(e) {
console.log("EDIT CLICKED");
e.preventDefault();
var ele = $(e.target);
console.log(ele);
_this.model = new ipl.mvc.collection.companies_collection([]);
var id = _this.model.get("id");
alert(id);
}
});
});
和模板
<a href="!/editpost/${id}" data-id="${id}"><button id="edit" ><img src="/assets/img/pencil.png" /></button></a>
我需要 id 在编辑功能中使用,但没有得到${id}
从模板中,我按照这些步骤操作,但我没有得到它?如何获得${id}
从模板中单击的项目的数量?
实际上你需要的是这样的:
您已在模板中的 html 元素上设置了 data-id
您添加了一个要在正确的事件上执行的方法(editPost)
-
在该 editPost 方法中,您可以执行以下操作:
editPost: function(e){
e.preventDefault();
var id = $(e.currentTarget).data("id");
var item = this.collection.get(id);
}
remark我注意到你的代码有太多结束标签,所以它不会在这里运行,
我还注意到在你的 editPost 中你尝试了 _this 但你从未声明 _this。
你应该有var _this = this;
在那个方法中。
remark 2我不明白为什么在这个例子中你甚至需要一个 data-id,
有两种渲染视图的方法,视图有一个绑定到它的集合,或者它有一个模型。将集合绑定到视图时,您可能需要从单击的元素中获取正确的 id,以在集合中找到正确的模型
但在你的例子中,你的视图有一个绑定到它的模型,所以你只有 1 个 ID,你可以通过调用来获取它this.model.get('id');
我相信上面的整个代码示例是从另一个示例复制的,其中他们在视图中使用集合,因为您的渲染和 data-id 属性的使用都表明了这一点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)