简体   繁体   English

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

[英]In Backbone.js how do i call a function in one view from another view?

I have my views seperated into separate files. 我把我的观点分成了不同的文件。 In my main view I am trying to call a function in another view. 在我的主视图中,我试图在另一个视图中调用一个函数。 Is there a way to do this in Backbone.js? 有没有办法在Backbone.js中执行此操作?

A good way would be to use the Mediator pattern so you do not tightly couple your views. 一个好方法是使用Mediator模式,这样你就不会紧密地结合你的观点。 In the latest versions of Backbone, the Backbone object can be used as a mediator. 在最新版本的Backbone中, Backbone对象可以用作中介。

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

In view 2: 在视图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);

You may also use the more recent listenTo method. 您也可以使用更新的listenTo方法。 Of course it will only work if view2 has been initialized. 当然,只有在初始化view2时它才会起作用。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM