«Как» сохранить всю коллекцию в Backbone.js - Backbone.sync или jQuery.ajax?

Я прекрасно понимаю, что это можно сделать, и я просмотрел довольно много мест (включая: Лучшая практика для сохранения всей коллекции? ). Но я все еще не ясно, «как именно» это написано в коде? (сообщение объясняет это на английском языке. Было бы здорово получить объяснение, специфичное для javascript :)

Скажем, у меня есть коллекция моделей - сами модели могли быть вложенными коллекций. Я переопределил метод toJSON () родительской коллекции и получаю действительный объект JSON. Я хочу «сохранить» всю коллекцию (соответствующий JSON), но, похоже, магистраль не встроена в эту

var MyCollection = Backbone.Collection.extend({
model:MyModel,

//something to save?
save: function() {
   //what to write here?
 }

});

Я знаю, что где-то вы должны сказать:

Backbone.sync = function(method, model, options){
/*
 * What goes in here?? If at all anything needs to be done?
 * Where to declare this in the program? And how is it called?
 */
}

Как только «представление» завершено с обработкой, оно отвечает за указание коллекции «сохранить» себя на сервере (способной обрабатывать массовое обновление / создание request).

Возникающие вопросы:

  1. Как / что писать в коде, чтобы «связать все вместе»?
  2. Каково «правильное» расположение обратных вызовов и как o указать обратный вызов "успех / ошибка"? Я имею в виду синтаксически? Я не понимаю синтаксис регистрации обратных вызовов в магистрали ...

Если это действительно сложная задача, то можем ли мы вызвать jQuery.ajax в представлении и передать this.successMethod или this.errorMethod как обратные вызовы успеха / ошибки ?? Будет ли это работать?

Мне нужно синхронизироваться с мышлением магистрали - я знаю, что мне определенно не хватает чего-то w.r.t., синхронизации целых коллекций.

81
задан Community 23 May 2017 в 11:45
поделиться