在Backbone.js中如何从另一个视图调用一个视图中的函数?

时间:2013-02-27 14:18:02

标签: javascript backbone.js openlayers backbone-views

我将我的观点分成不同的文件。在我的主视图中,我试图在另一个视图中调用一个函数。有没有办法在Backbone.js中执行此操作?

1 个答案:

答案 0 :(得分:3)

一种好方法是使用Mediator模式,这样就不会紧密地结合你的观点。 在最新版本的Backbone中,Backbone对象可以用作中介。

在视图1中:Backbone.trigger('somethingHappened', {id: 1});

在视图2中:

//action when 'something' happens
onSomething : function(data){
    console.log('Got that: ' + data.id)
}
//... in the view init ...
Backbone.on('somethingHappened', onSomething)
//... in the view destruction...
Backbone.off('somethingHappened', onSomething);

您也可以使用更新的listenTo方法。 当然,只有在初始化view2时它才会起作用。