显示信息栏从边栏所选模型(Display selected model from sidebar i

2019-06-27 00:39发布

我正在这对右侧的侧边栏应用程序。 显示集合。 集合的每个模型都有select的行为。

在页面的顶部中间我有一个就像“信息栏”这种观点应该更新一个独立的骨干鉴于它的信息来源,当我选择在侧边栏的景色之一

我该怎么做? 我认为,在侧边栏的每个视图应该有“选择”的事件与模型参数,我的问题是我怎么能听在Backbone.js的我的信息栏认为,改变???

Answer 1:

这听起来像的东西,将通过一个事件聚合模式来服务好。 德里克·贝利发表在这个问题上,你可以在这里阅读一个非常好的文章。

事件聚合模式

我伸出我的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解除绑定事件。 :-)



文章来源: Display selected model from sidebar in information bar