我的问题是将我在应用程序期间的某个时间创建的模型绑定(bind)到在初始化时创建的 View 。让我更好地解释一下:
在我的 route ,我设置了一个 View :
...
var view = new app.FirstView();
view.render();
在
app.FirstView = Backbone.View.extend({
initialize: function(){
...
this.SidebarView = new app.SidebarView();
}
... });
在我的应用程序期间的某个时间 X,我在另一个 View 中出现了此行为:
app.AnotherView = Backbone.View.extend({
...
onClickHandler: function(){
var aModel = app.aModel();
var view = app.aView({ model: aModel });
}
})
我现在的问题是绑定(bind)aModel
onClickHandler
中定义至SidebarView
我创建并绑定(bind)到 FirstView
在初始化时。
如果有什么不清楚的地方请告诉我。
提前致谢
最佳答案
一种解决方案是使用事件,例如,
在您的 AnotherView 中触发事件并传递给模型到 View
onClickHandler: function(){
var aModel = app.aModel();
Backbone.trigger('model:assigned',aModel);
}
在侧边栏 View 的初始化中,您应该监听事件
Backbone.on("model:assigned",function(passedModel){
this.model = passedModel;
})
注意1:您必须确保 sidebarView 在触发事件时已初始化。
注2:尝试避免全局事件,我使用它是因为我不知道你的代码结构。
关于javascript - 在 Backbone 中将模型异步绑定(bind)到 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28497375/