Ответ 1
Взгляните на этот аннотированный пример источника, где они перезаписывают Backbone.sync
альтернативой 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
является actaully (this.sync || Backbone.sync)
, поэтому вам просто нужно сделать что-то вроде:
var MyModel = Backbone.Model.extend({
...
"sync": myOwnSpecificSync,
...
});
Backbone.sync
- это только глобальная по умолчанию, используемая всеми моделями, если только у моделей не установлен метод sync
.