Spójrz na ten przykład źródła z adnotacjami, w którym nadpisują one Backbone.syncalternatywą lokalnego magazynu
backbone-localStorage
Zasadniczo Backbone.sync powinien być funkcją, która przyjmuje 4 argumenty:
Backbone.sync = function(method, model, options) { };
Trzeba ognia albo options.successczy options.errorw zależności od tego, czy methodsię udało. Metody są w formacie:
"create" : oczekiwano, że utworzysz model na serwerze
"read" : oczekiwano, że przeczytasz ten model z serwera i zwrócisz go
"update" : oczekiwano, że zaktualizujesz model na serwerze z argumentem
"delete" : oczekiwano, że usuniesz model z serwera.
Musisz wdrożyć te 4 metody i zdefiniować wszystko, co chcesz "server"
Oczywiście są to tylko rzeczy, które Backbone.sync należy wdrożyć. Możesz zaimplementować więcej methodsi przekazać więcej parametrów z powrotem, successale najlepiej tego nie robić.
Najlepiej jest upewnić się, że robi to samo, co Backbone.syncobecnie, aby programowanie do interfejsu, a nie do implementacji. Jeśli chcesz zmienić zmodyfikowaną Backbone.syncwersję na, powiedzmy, localStorage, nie musisz jej samodzielnie rozszerzać, aby pasowała do rozszerzonego Backbone.sync "
[Edytować]
Pamiętaj również, że możesz używać wielu implementacji sync. Każde odwołanie do Backbone.syncjest aktywne, (this.sync || Backbone.sync)więc musisz po prostu zrobić coś takiego:
var MyModel = Backbone.Model.extend({
...
"sync": myOwnSpecificSync,
...
});
Backbone.syncjest po prostu domyślnym globalnym, używanym przez wszystkie modele, chyba że modele mają syncspecjalnie ustawioną metodę.