Я добре знаю, що це можна зробити, і я переглянув чимало місць (зокрема: Найкраща практика для збереження цілої колекції? ). Але мені все ще незрозуміло, "як саме" це написано в коді? (у дописі це пояснюється англійською мовою. Було б чудово, якщо б було роз’яснення, яке конкретно відповідає 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
як зворотний виклик успіху / помилки ?? Чи вдасться?
Мені потрібно синхронізуватись з основними способами мислення - я знаю, що мені точно щось не вистачає, синхронізуючи цілі колекції.