Javascript Backbonejs:侦听单独视图上的按钮单击
我有一个管理子视图view.B和view.C的父视图(view.a)。View.B有一个控制View.B上事件的按钮界面 设置Javascript Backbonejs:侦听单独视图上的按钮单击,javascript,jquery,backbone.js,Javascript,Jquery,Backbone.js,我有一个管理子视图view.B和view.C的父视图(view.a)。View.B有一个控制View.B上事件的按钮界面 设置 View.A View.B view.B.template.html View.C view.C.template.html View.B.template.html <div class="btn-group"> <button id="button-1" type="button" class="btn btn-def
View.A
View.B
view.B.template.html
View.C
view.C.template.html
View.B.template.html
<div class="btn-group">
<button id="button-1" type="button" class="btn btn-default">
Button 1
</button>
<button id="button-2" type="button" class="btn btn-default">
Button 2
</button>
</div>
我想做的是控制View.C上的事件以及View.B按钮。我已经尝试将delegatedEvents添加到View.C中,以侦听View.B模板中按钮ID的单击,但这不起作用。有解决方法吗?我会创建一个eventaggregator,类似于:
var vent = _.extend({}, Backbone.Events);
然后你可以监听并触发事件。所以你会有这样的东西:
// This would be from View.B
someMethod: function(ev) {
vent.trigger('someMethod', ev);
}
// And this would be in View.C
initialize: function() {
this.listenTo(vent, 'someMethod', this.mySomeMethod);
}
然后,您可以在必要时重用事件聚合器。这样做
// This would be from View.B
someMethod: function(ev) {
vent.trigger('someMethod', ev);
}
// And this would be in View.C
initialize: function() {
this.listenTo(vent, 'someMethod', this.mySomeMethod);
}