我想動態地擴展Backbone.js視圖的渲染函數。這樣做,我希望能夠在調用render之前和之後觸發事件。我嘗試覆蓋該函數並調用舊函數,該函數可以工作,但所有綁定到渲染函數的模型都會失去綁定。我現在已經是下面的代碼,是我傳遞一個Backbone.js的創建視圖:動態偵聽Backbone.js視圖的渲染函數被調用
function bindRenders(view) {
view.render = (function() {
var cachedRender = view.render;
return function() {
console.log("before render");
cachedRender.apply(this, arguments);
console.log("after render");
};
}());
}
再次,上面的代碼將工作,但被綁定到渲染功能的所有型號:
this.model.on('change', this.render, this);
break。我找到的唯一解決方案是在覆蓋函數後重新綁定模型的.on('change')事件。但是,並不是每個視圖的模型都會以這種方式進行綁定。很感謝任何形式的幫助!謝謝!
感謝您的迴應!佈局管理器正是我正在尋找的:) –