Spójrz na ten przykład źródła z adnotacjami, w którym nadpisują one Backbone.sync
alternatywą 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.success
czy options.error
w zależności od tego, czy method
się 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 methods
i przekazać więcej parametrów z powrotem, success
ale najlepiej tego nie robić.
Najlepiej jest upewnić się, że robi to samo, co Backbone.sync
obecnie, aby programowanie do interfejsu, a nie do implementacji. Jeśli chcesz zmienić zmodyfikowaną Backbone.sync
wersję 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.sync
jest aktywne, (this.sync || Backbone.sync)
więc musisz po prostu zrobić coś takiego:
var MyModel = Backbone.Model.extend({
...
"sync": myOwnSpecificSync,
...
});
Backbone.sync
jest po prostu domyślnym globalnym, używanym przez wszystkie modele, chyba że modele mają sync
specjalnie ustawioną metodę.