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