我正在这对右侧的侧边栏应用程序。 显示集合。 集合的每个模型都有select
的行为。
在页面的顶部中间我有一个就像“信息栏”这种观点应该更新一个独立的骨干鉴于它的信息来源,当我选择在侧边栏的景色之一
我该怎么做? 我认为,在侧边栏的每个视图应该有“选择”的事件与模型参数,我的问题是我怎么能听在Backbone.js的我的信息栏认为,改变???
我正在这对右侧的侧边栏应用程序。 显示集合。 集合的每个模型都有select
的行为。
在页面的顶部中间我有一个就像“信息栏”这种观点应该更新一个独立的骨干鉴于它的信息来源,当我选择在侧边栏的景色之一
我该怎么做? 我认为,在侧边栏的每个视图应该有“选择”的事件与模型参数,我的问题是我怎么能听在Backbone.js的我的信息栏认为,改变???
这听起来像的东西,将通过一个事件聚合模式来服务好。 德里克·贝利发表在这个问题上,你可以在这里阅读一个非常好的文章。
事件聚合模式
我伸出我的Backbone.View使所有的观点有这样他们可用的事件聚合对象。
Backbone.View.prototype.eventAggregator = _.extend({}, Backbone.Events);
基本上,当选择你的模型视图,您view.eventAggregator会引发一些自定义事件。
sidebarView.eventAggregator.trigger('selected', this.model);
或者这种东西。 随着骨干网的事件,您可以通过触发功能,以您的事件侦听器传递参数。 在上面的例子中,我通过与特定的事件模型。
在您的主视图中,你会监听此事件。
mainView.eventAggregator.on('selected', myFunction, this);
myFunction: function(model) {
// Some code to execute - model is available through param
}
这是一个非常有用的模式。 只是不要忘记,当你关闭你的MAINVIEW解除绑定事件。 :-)