是否可以使用Backbone.View.events
定义来监听自定义子视图事件?
子定义
所有click
事件都被缓存并触发我的clicked
功能:
var Child = Backbone.View.extend({
events : {
'click' : 'clicked'
},
clicked: function() {
alert('View was clicked');
this.trigger("customEvent");
},
render: function() {
this.$el.html("<span>Click me</span>");
}
});
父定义
为什么customEvent
事件不调用我的action
函数?
var Parent = Backbone.View.extend({
events : {
'customEvent' : 'action'
},
action : function() {
alert('My sub view triggered a custom event');
},
render : function() {
var child = new Child();
this.$el.append(child.el);
child.render();
}
});
创建和渲染父级
var parent = new Parent();
parent.$el.appendTo(document.body);
parent.render();
我知道可以listenTo
改用,但使用事件定义似乎更干净。
我的意图是构建一个子视图(例如颜色选择器),它在完成后触发一个事件。