我的问题是将在应用程序中的某个特定时间绑定的模型绑定到在初始化时创建的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绑定到在初始化时创建并绑定到SidebarViewFirstView

请告诉我是否不清楚。

提前致谢

最佳答案

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

在您的AnotherView中触发一个事件,并将其传递给View

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


在侧边栏视图的初始化中,您应该监听事件

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


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

注意2:尽量避免使用全局事件,因为我不知道您的代码结构。

09-25 15:57