Как переопределить Backbone.sync?

Как переопределить Backbone.sync?

Взгляните на этот пример аннотированного источника, где они перезаписывают 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 .

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector