javascript - Backbone.js中不同 View 的调用方法

标签 javascript jquery backbone.js

我正在将backbone.js与ASP.NET MVC 4结合使用。

我想从其中一个 View 调用不同 View 的方法。为了使这一点更容易理解,我在下面创建了一个小示例。

在 MyView2 的 OperationCompleted 方法中,我想调用以下...

  • 调用 MyView 2 的 myMethodB
  • 调用 MyView 1 的 myMethodA
  • 调用AppView的myMethodC

我该怎么做?我暂时使用了诸如创建 View 对象并调用它们之类的方法。

像这样的var view1 = new MyView1();然后view1.myMethodA();,必须有更好的方法,请帮我找到它。谢谢

var MyModel = Backbone.Model.extends({
});

// View for a Main Grid
var MyView1 = Backbone.View.extend({
...
myMethodA: function(){
 // do something with View 1
}
...
});


// View for subgrid in Main Grid
var MyView2 = Backbone.View.extend({
...
myMethodB: function(){
 // do something with View 2
},
OperationCompleted: function(){
 // call myMethodB of MyView 2
 // call myMethodA of MyView 1
 // call myMethodC of AppView
}
...
});

var AppView = Backbone.View.extend({
...
myMethodC: function(){
 // do something with App View 
}
...
});

最佳答案

成功了!必须使用聚合器模式,下面粘贴了我如何使用它的示例......

Backbone.View.prototype.eventAggregator = _.extend({}, Backbone.Events);

var model = Backbone.Model.extend({
});

var view1 = Backbone.View.extend({
    initialize: function () {
        this.eventAggregator.bind("doSomething_event", this.doSomething);
    },
    doSomething: function(name){
        alert("Hey " + name + " !");
    }   
});

var view2 = Backbone.View.extend({    
    callToDoSomething: function(){
        self.eventAggregator.trigger("doSomething_event", "Yasser");
    }   
});

引用文献

https://stackoverflow.com/a/11926812/1182982

关于javascript - Backbone.js中不同 View 的调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12720561/

相关文章:

javascript - 多个选项的indexOf

javascript - jsTree:如何在刷新后选择节点

jquery - 如何禁用 div 上的绑定(bind)

javascript - 在 BackBone 模型 Ajax 函数中自动分配某些值

javascript - Module.start() 触发了两次?

javascript - 奇怪的 JS 语法 : math operator in function declaration

javascript - ENOLOCK npm 错误!运行 npm 审核修复时出错

javascript - LINQ-For-Javascript 嵌套数组

javascript - 在具有透明背景的堆叠 div 后面 overflow hidden

javascript - Node.js 表达 POST 404ing