簡體   English   中英

如何調用父骨干同步方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM