2012-01-17 8 views

答えて

4

は、最善の解決策もよいが、それが動作しない場合があります。このような何かを試してみてください:

 

var parentSyncMethod = Backbone.sync; //save parent method, the override 
Backbone.sync = function() { 
    // Your code here. 
    var parentSyncMethod.apply(Backbone, arguments); 
}; 
 

は、それがsyncはプロトタイプに定義されていないので、何らかの方法で

1

Backbone.prototype.sync.callが動作しませんお役に立てば幸いです。コンソールのBackboneオブジェクトを調べて、その構造を確認します。独自のメソッドに別の名前を付けるか、元のsyncメソッドへの参照を保存してから、独自の実装でオーバーライドする必要があります。私が理解から

9

は、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); 
    } 
}); 

これは私がherehere

+3

私はこのアプローチを以前から使用しており、特にモデル固有の同期が必要な場合にうまく機能することを発見しました。 Backbone.syncを直接(別の回答に示されているように)変更すると、必要なモデルではないすべてのモデルが影響を受けます。 – erturne

4
var TestModel = Backbone.Model.extend({ 
    sync: function(method, model, options){ 
     // some code here 
     return Backbone.sync(method, model, options); 
    } 
}); 
から収集したものです
関連する問題