我正在開發一個Backbone應用程序。我創建了基本視圖,其中有一個銷燬方法,所有其他視圖擴展它。骨幹清除 - 刪除上下文綁定回調的引用
銷燬視圖實例時,我想確保如果視圖有模型或集合,我解除綁定正在偵聽的任何事件。
假設我在視圖的初始化中使用下劃線的_.bindAll,下面的 off語句是否會刪除引用。
var DocumentRow = Backbone.View.extend({
initialize: function() {
_.bindAll(this);
this.model.on('change', this.render);
},
destroy : function() {
// Will this work?
this.model.off(null, null, this);
}
});
或者我需要顯式綁定的事件,像這樣
this.model.on('change', this.render, this);
爲什麼你將null傳遞給model.off? –
刪除視圖中的所有回調。根據Backbone文檔中的示例://爲所有事件移除「context」的所有回調。 object.off(null,null,context); – Daniel
好的。我認爲this.model.on('改變',this.render);應該可以正常工作,因爲渲染將被綁定到'This',您的DocumentRow。 –