我在理解 Backbone 子视图中的事件绑定时遇到问题。我的观点定义如下:
TenantView = Backbone.View.extend({
events: {
"click": "setActive"
},
initialize: function() {
this.parentEl = this.options.parentEl;
return this.render();
},
template: new EJS({
url: '/scripts/templates/tenant.ejs'
}),
render: function() {
$(this.parentEl).children('ul').append(this.template.render(this.model));
return this;
},
setActive: function(event) {
return this.model.set('active', true);
}
});
模板只包含一个li
包含一个a
. 这样做,我的视图上的点击事件不会被捕获,我的方法setActive
永远不会被触发。
el
当我通过像我的 (2) 视图之一这样的属性扩展我的视图时,el: 'li'
它会正常运行并触发该setActive
功能。第二种观点根本没有反应。如果我el
在视图初始化期间检查该属性,则工作视图的el
属性指向右侧li
,失败的视图el
指向li
可以在页面中找到的第一个。
可以看出,当谈到属性的含义时,我完全迷失了el
。
问题是,我怎样才能将点击视图绑定到这个视图setActive
功能?
任何人都可以启发我吗?
问候菲利克斯