2011-10-14 12 views

Odpowiedz

15

W JavaScript można przechowywać dowolną właściwość lub metodę w zmiennej. Poniższy przykład przydzieli Backbone.sync do innej zmiennej, a następnie na końcu twojej funkcji wywołaj ją ze wszystkimi zmiennymi, które są przekazywane do twojej nowej funkcji Backbone.sync.

var originalSync = Backbone.sync; 
Backbone.sync = function() { 
    // Your code here. 
    return originalSync.apply(Backbone, arguments); 
}; 
+0

Idealnie! dzięki. – kreek

6

The answer dostarczonych przez Briana niklu powyżej rzeczywiście zastąpić Backbone „s sync metoda, która wpłynie na wszystkie modele kręgosłupa. Jeśli to, co miał na myśli to, aby zastąpić sync dla konkretnego typu modelu, może wolisz zamiast poniższego schematu (również upewniając się, aby przesłonić sync z prawidłowym podpisem z the Backbone docs):

var YourModel = Backbone.Model.extend({ 
    sync: function(method, model, options) { 
     // do your custom work here 
     return Backbone.Model.prototype.sync.call(this, method, model, options); 
    } 
}); 

Bardziej szczegółowe informacje na temat jak to działa, zapoznaj się z samym numerem Backbone's annotated source. Nadzieja, która pomaga.

+1

nie powinno to być 'Backbone.Model.prototype.sync.call (etc etc)'? (Brakuje modelu.) – mix3d

+0

Yup, dzięki za korektę – bosgood

Powiązane problemy