在 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
绑定到我在初始化时创建并绑定到 FirstView
的 SidebarView
。
如果有什么不清楚的地方请告诉我。
提前致谢
一个解决方案是使用一个事件,例如,
在您的 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:尽量避免全局事件,我用过因为我不知道你的代码结构。
我的问题是将一个模型(我在应用程序期间的特定时间创建)绑定到在初始化时创建的视图。让我更好地解释一下:
在我的路线中,我创建了一个视图:
...
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
绑定到我在初始化时创建并绑定到 FirstView
的 SidebarView
。
如果有什么不清楚的地方请告诉我。
提前致谢
一个解决方案是使用一个事件,例如,
在您的 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:尽量避免全局事件,我用过因为我不知道你的代码结构。