[英]How to override Backbone Collection remove method and then call parent
[英]How to call parent backbone sync method
在我的應用程序中,我重寫Backbone.sync如下:
Backbone.sync = function(method, model, options){
//Some custom code
//THIS FAILS.
Backbone.prototype.sync.call(this, method, model, options);
}}
我的問題是,如何調用原始同步方法? 我需要使用this.sync嗎?
根據我的理解,Backbone.sync檢查是否有本地定義的同步版本,並在調用全局Backbone.sync之前調用它:
(this.sync || Backbone.sync)
因此,鑒於您的模型類似於TestModel。 我認為你可以做這樣的事情(原諒,我這可能不是正確的語法,javascript遠非我的專長):
var TestModel = Backbone.Model.extend({
"sync": function(method, model, options) {
//Some custom code
Backbone.sync(method, model, options);
}
});
var TestModel = Backbone.Model.extend({
sync: function(method, model, options){
// some code here
return Backbone.sync(method, model, options);
}
});
嘗試這樣的東西,可能不是最好的解決方案,但它的工作原理:
var parentSyncMethod = Backbone.sync; //save parent method, the override
Backbone.sync = function() {
// Your code here.
var parentSyncMethod.apply(Backbone, arguments);
};
希望它在某種程度上有所幫助
Backbone.prototype.sync.call
將無法正常工作,因為原型上未定義sync
。 檢查控制台中的Backbone
對象以查看其結構。 在使用自己的實現覆蓋它之前,您需要為自己的方法命名,或者保存對原始sync
方法的引用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.