Взгляните на этот пример с аннотированным источником, где они перезаписывают Backbone.syncальтернативой localalstorage
магистральная-LocalStorage
По сути, Backbone.sync должна быть функцией, которая принимает 4 аргумента:
Backbone.sync = function(method, model, options) { };
Вы должны стрелять options.successили в options.errorзависимости от того, methodудалось ли . Методы в формате:
"create" : ожидается, что вы создадите модель на сервере
"read" : ожидается, что вы прочитаете эту модель с сервера и вернете ее
"update" : ожидается, что вы обновите модель на сервере с аргументом
"delete" : ожидается, что вы удалите модель с сервера.
Вам нужно реализовать эти 4 метода и определить, что вы хотите для вашего "server"
Конечно, это только то, что Backbone.sync нужно реализовать. Вы можете реализовать больше, methodsи вы можете передать больше параметров, successно лучше этого не делать.
Лучше убедиться, что он делает то же самое, что Backbone.syncи в настоящее время, так что ваше программирование для интерфейса, а не для реализации. Если вы хотите заменить свой модифицированный, Backbone.syncскажем, localStorage, вам не нужно расширять его самостоятельно, чтобы он соответствовал вашему расширенному Backbone.sync "
[Редактировать]
Также обратите внимание, что вы можете использовать несколько реализаций sync. Каждое упоминание Backbone.syncявляется (this.sync || Backbone.sync)действительным, так что вам просто нужно сделать что-то вроде:
var MyModel = Backbone.Model.extend({
...
"sync": myOwnSpecificSync,
...
});
Backbone.syncэто просто глобальная по умолчанию, которую используют все модели, если только в моделях не установлен syncспециально определенный метод.