在Backbone中异步绑定模型到视图

时间:2015-02-13 10:23:57

标签: javascript backbone.js

我的问题是在我的应用程序中的某个时间绑定一个模型,该模型是在初始化时创建的View。让我解释一下:

在我的路线中,我认为是一个观点:

...
var view = new app.FirstView();
view.render();

app.FirstView = Backbone.View.extend({

   initialize: function(){
     ...
     this.SidebarView = new app.SidebarView(); 
   }
... });

在我申请期间的某个时间X,我在另一个视图中有这种行为:

app.AnotherView = Backbone.View.extend({
   ...
   onClickHandler: function(){
      var aModel = app.aModel();
      var view = app.aView({ model: aModel });
   }
})

我现在的问题是,将aModel中定义的onClickHandler绑定到我创建的SidebarView,并在初始化时绑定到FirstView

如果不清楚,请告诉我。

提前致谢

1 个答案:

答案 0 :(得分:2)

一种解决方案是使用事件,例如,

在您的AnotherView中触发事件并将模型传递给View

 onClickHandler: function(){
      var aModel = app.aModel();
      Backbone.trigger('model:assigned',aModel);
   }

在你的侧栏查看初始化你应该听事件

Backbone.on("model:assigned",function(passedModel){
   this.model = passedModel; 
})

注1:您必须确保在触发事件时初始化sidebarView。

Note2 :尝试避免使用全局事件,因为我不知道您的代码结构。