我想将新模型附加到视图并重新渲染视图。我能够首先渲染视图,但是我无法将该视图中的数据更改为新模型。
my_model_1 = Backbone.Model.extend({});
my_model_2 = Backbone.Model.extend({});
my_view = Backbone.View.extend({
initialize : function() {
_.bindAll(this, 'render');
this.model.bind('change', this.render);
},
render : function(){
}
});
var view_instance = new my_view({ model: my_model_1 });
//Template gets rendered
try{
view_instance.changeModel(my_model_2);
}catch(e){console.log(e)};
try{
view_instance.set(my_model_2);
}catch(e){console.log(e)};
try{
view_instance.fetch(my_model_2);
}catch(e){console.log(e)};
try{
view_instance.model = my_model_2;
}catch(e){console.log(e)};
//Template should get updated with data from model 2
有什么建议吗?
答案 0 :(得分:0)
change
事件如果在模型中的数据发生变化时被触发,在您的情况下,您的视图不是“重新获得”,因为它的模型数据没有改变而只是您切换模型。切换视图模型后,您可以手动trigger更改事件,或者调用render
方法
例如
view_instance.model = my_model_2;
my_model_2.change();