【发布时间】:2012-11-07 11:43:20
【问题描述】:
我在理解 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 之类的el: 'li' 属性扩展我的视图时,我的(2) 个视图之一正常运行并触发setActive 函数。第二种观点根本没有反应。如果我在视图初始化期间检查el 属性,则工作视图的el 属性指向右侧li,失败的视图el 指向可以在页面中找到的第一个li。
正如你所看到的,当谈到 el 属性的含义时,我完全迷失了。
问题是,如何将点击视图绑定到这个视图setActive 函数?
谁能赐教?
问候 费利克斯
【问题讨论】:
标签: javascript events backbone.js