0
我想附加一个新的模型到一个视图,并使视图重新呈现。我能够首先呈现视图,但我无法将该视图中的数据更改为新模型。Backbone JS如何添加一个新模型到一个视图来自动重新渲染模板
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
有什么建议吗?
现在我已经解决了这个问题,它主要是到你的答案虽然在最后,它变成了更多的范围问题(以及与您的建议有关)。我结束了一个window.model变量,并将其设置为my_model_1,然后运行: var view_instance = new my_view({model:window.model});然后,我跑了:window.model.set(my_model_2),这引发了你引用的“更改”,它更新了我的视图。非常感谢!你是完全正确的! – stevenmc 2012-08-15 21:23:15