Мне хорошо известно, что это можно сделать, и я просмотрел довольно много мест (в том числе: Лучшая практика для спасения всей коллекции?). Но я до сих пор не ясно, "как это" написано в коде? (сообщение объясняет это на английском языке. Было бы здорово иметь специфическое объяснение 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
в качестве обратных вызовов успеха/ошибки? Будет ли это работать?
Мне нужно синхронизировать с основным мышлением - я знаю, что я определенно отсутствует что-то w.r.t., синхронизация целых коллекций.