Schauen Sie sich dieses mit Anmerkungen versehene Quellbeispiel an, in dem sie Backbone.syncmit einer lokalen Speicheralternative überschrieben werden
backbone-localStorage
Grundsätzlich sollte Backbone.sync eine Funktion sein, die 4 Argumente akzeptiert:
Backbone.sync = function(method, model, options) { };
Sie müssen entweder options.successoder options.errorje nachdem, ob der methoderfolgreich war , feuern . Die Methoden haben das folgende Format:
"create" : erwartet, dass Sie das Modell auf dem Server erstellen
"read" : erwartet, dass Sie dieses Modell vom Server lesen und zurückgeben
"update" : erwartet, dass Sie das Modell auf dem Server mit dem Argument aktualisieren
"delete" : erwartet, dass Sie das Modell vom Server löschen.
Sie müssen diese 4 Methoden implementieren und definieren, was Sie für Ihre wollen "server"
Natürlich sind dies nur die Dinge, Backbone.sync die implementiert werden müssen . Sie können mehr implementieren methodsund mehr Parameter zurückgeben, successaber es ist am besten, dies nicht zu tun.
Stellen Sie am besten sicher, dass es dasselbe Backbone.synctut wie derzeit, damit Sie auf eine Schnittstelle programmieren und nicht auf eine Implementierung. Wenn Sie Ihre Modifikation beispielsweise Backbone.syncfür die localStorage-Version austauschen möchten, müssen Sie sie nicht selbst erweitern, um sie an Ihre erweiterte Backbone.sync anzupassen. "
[Bearbeiten]
Beachten Sie auch, dass Sie mehrere Implementierungen von verwenden können sync. Jeder Verweis auf Backbone.syncist wirklich, (this.sync || Backbone.sync)also müssen Sie nur etwas tun wie:
var MyModel = Backbone.Model.extend({
...
"sync": myOwnSpecificSync,
...
});
Backbone.syncist nur die globale Standardeinstellung, die von allen Modellen verwendet wird, es sei denn, für die Modelle ist eine syncbestimmte Methode festgelegt.