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

Bind Model to a View asynchronously in Backbone

我的问题是将一个模型(我在应用程序期间的特定时间创建)绑定到在初始化时创建的视图。让我更好地解释一下:

在我的路线中,我创建了一个视图:

...
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 });
   }
})

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

如果有什么不清楚的地方请告诉我。

提前致谢

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

在您的 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:尽量避免全局事件,我用过因为我不知道你的代码结构。