Я хорошо знаю, что это можно сделать, и я просмотрел довольно много мест (в том числе: Лучшая практика для сохранения всей коллекции? ). Но мне все еще не ясно, «как именно» это написано в коде? (сообщение объясняет это на английском языке. Было бы здорово получить конкретное объяснение 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?
*/
}
После того, как «представление» завершено с обработкой, оно отвечает за указание коллекции «сохранить» себя на сервере (способном обрабатывать массовый запрос на обновление / создание).
Возникающие вопросы:
- Как / что написать в коде, чтобы «связать все вместе»?
- Какое «правильное» расположение обратных вызовов и как указать обратный вызов «успех / ошибка»? Я имею в виду синтаксически? Мне непонятен синтаксис регистрации обратных вызовов в магистрали ...
Если это действительно сложная задача, можем ли мы вызвать jQuery.ajax в представлении и передать this.successMethod
или this.errorMethod
как обратные вызовы успеха / ошибки ?? Это будет работать?
Мне нужно синхронизироваться с мышлением магистрали - я знаю, что определенно что-то упустил, синхронизируя целые коллекции.