Backbone.js 如何查找所单击项对应的模型Id?
如何知道我单击的项目的Id?我的代码如下:Backbone.js 如何查找所单击项对应的模型Id?,backbone.js,backbone-events,Backbone.js,Backbone Events,如何知道我单击的项目的Id?我的代码如下: $(函数(){ ipl.mvc.view.openings\u view=ipl.mvc.view.view\u base.extend({ 模板:'/assets/t/plmt/companys.tmpl.html', ID:“#tmpl_开口”, 活动:{ “单击#编辑”:“编辑帖子” }, 初始化:函数(){ var_this=这个; _.bindAll(这是'addOne','addAll','render','editpost'); _thi
$(函数(){
ipl.mvc.view.openings\u view=ipl.mvc.view.view\u base.extend({
模板:'/assets/t/plmt/companys.tmpl.html',
ID:“#tmpl_开口”,
活动:{
“单击#编辑”:“编辑帖子”
},
初始化:函数(){
var_this=这个;
_.bindAll(这是'addOne','addAll','render','editpost');
_this.loadTemplate(_this.template,function()){
_this.model=new ipl.mvc.model.companys_model([]);
_this.model.view=\u this;
_this.model.bind('change',\u this.render,\u this);
});
}
,
render:function(){
var_this=这个
jsonData=_this.model.toJSON();
_.每个(jsonData、功能(模型){
$(_this.ID).tmpl(model).appendTo(_this.el);
把这个还给你;
});
}
,
编辑:功能(e){
console.log(“单击编辑”);
e、 预防默认值();
变量ele=$(e.target);
控制台日志(ele);
_this.model=new ipl.mvc.collection.companys_collection([]);
var id=_this.model.get(“id”);
警报(id);
}
});
});
和模板
<a href="!/editpost/${id}" data-id="${id}"><button id="edit" ><img src="/assets/img/pencil.png" /></button></a>
我需要在编辑函数中使用id,但不能从模板中获取
${id}
,我按照这些步骤进行操作,但没有得到它?如何从模板中获取单击项的${id}
?实际上您需要的是:
editPost: function(e){
e.preventDefault();
var id = $(e.currentTarget).data("id");
var item = this.collection.get(id);
}
var\u this=this代码>在该方法中
备注2我不明白为什么在本例中您甚至需要数据id,
呈现视图有两种方式,一种是视图绑定了集合,另一种是视图具有模型。将集合绑定到视图时,您可能需要从单击的元素中获取正确的id,以便在集合中找到正确的模型
但是在您的示例中,您的视图绑定了一个模型,因此您只有1个ID,您可以通过调用this.model.get('ID')来获取该ID
我相信上面的整个代码示例都是从另一个示例中复制的,他们在视图中使用了一个集合,因为您的渲染和数据id属性的使用都表明了这一点。这是另一种(较新版本的主干?)方法:(我看到@Sander在他的备注中显示了模型。get
方法)
请看一看你发布的代码,如果你问我它有太多的结束括号,我相信这是不正确的。请尝试重新格式化您的代码,使其看起来更吸引其他人尝试并找到解决方案
var AppointmentView = Backbone.View.extend({
events: {
'click' : 'alertTitle'
},
alertTitle : function(e) {
// this.model.get('id') is what you're looking for
alert( this.model.get('title') );
}
});