我想包括我的骨幹一個可選的參數視圖的渲染功能,像這樣:語境問題與骨幹視圖渲染功能
var AppView = Backbone.View.extend({
el: '#app',
initialize: function(){
_.bindAll(this,'render');
this.listenTo(app.collection.sellables,'reset', this.render);
},
render: function(sellableId){
if(typeof sellableId == "undefined"){
var sellable = app.collection.sellables.first();
}
else{
var sellable = app.collection.sellables.get(sellableId);
}
var view = new SellableView({model: sellable});
this.$('#sellables').append(view.render().el);
},
});
第一次遇到這種觀點呈現,它發生的原因app.collection.sellables
收集得到從服務器收到一些數據後重置。發生此重置時,視圖的渲染函數會被調用,但不會被sellableId
調用爲未定義,而是sellableId
等於app.collection.sellables
變量,這會導致錯誤。爲了澄清,視圖的渲染功能是被稱爲正因爲如此:
app.collection.sellables.reset(data.skus);
爲什麼我的渲染功能是接收集合作爲參數,而不是論據是不確定的?
另外,如果我手動渲染視圖,它工作正常,並如預期的那樣sellableId說法是不明確的:
var app.view.app = new AppView;
app.view.app.render();
非常感謝,這非常有幫助。 – flyingL123