gpt4 book ai didi

javascript - Backbone : Listening for button clicks on seperate view

转载 作者:行者123 更新时间:2023-11-29 10:46:43 27 4
gpt4 key购买 nike

我有一个管理 subview View.B 和 View.C 的父 View (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-default">
Button 1
</button>
<button id="button-2" type="button" class="btn btn-default">
Button 2
</button>
</div>

View .B View

var View.B = Backbone.View.extend({
template: _.template( view.B.template.html ),
events: {
'click #button-1': 'someMethod',
'click #button-2': 'anotherMethod'
},
...
})

我想做的是控制 View.C 和 View.B 按钮上的事件。我试图将 delegatedEvents 添加到 View.C 以监听对 View.B 模板中按钮 ID 的点击,但这不起作用。有解决办法吗?

最佳答案

我会创建一个事件聚合器,类似于:

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);
}

然后您可以在必要时重用事件聚合器。 MarionetteJS这样做。

关于javascript - Backbone : Listening for button clicks on seperate view,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18150300/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com