我有一个关于fuelux网格的view1,带有一个组合框的格式化程序,用于附加列。我还有另一个view2,其中有菜单。点击view2中的某个按钮/下拉列表,我捕获了一个事件。
在view2中,我们如何访问view1的组合框?你可能已经猜到了,我对发展很陌生。
答案 0 :(得分:0)
这是我一直在使用的模式:
在全局命名空间(App)中 定义事件调度程序
App.Dispatcher = _.clone(Backbone.Events);
在view2中,您不想访问view1的组合框。我不确定你想在这里做什么,但我假设你想在视图2中点击按钮/下拉列表时想要用组合框发生一些事情。
所以,在你的视图2中这样做。
view2 = Backbone.View.extend({
//other view stuff
events: {
'click button': 'onClickButton'
},
onClickButton: function() {
App.Dispatcher.trigger('buttonClicked', [event params you wanna pass]);
}
});
并在view1中。
view1 = Backbone.View.extend({
//other view stuff
initialize: function() {
//other view initialize suff
App.Dispatcher.on('buttonClicked', this.handleButtionClicked, this);
},
handleButtionClicked: function() {
//do stuff to combo boxes
}
});
基本上,这个想法是,当你点击view2中的按钮时,view2通过全局App.Dispatcher通知这个事件。和view1在App.Dispatcher上订阅此事件,当它被触发时,view1应该知道如何处理它。