Согласно документу: http://documentcloud.github.com/backbone/#FAQ-events коллекция имеет событие синхронизации, когда я что-то делаю для синхронизации с сервером. Я пытаюсь вызвать метод fetch в коллекции и ждать события синхронизации на нем, но это никогда не произойдет. Событие добавлено, но мне нужно только одно событие после синхронизации всех элементов коллекции для обновления соответствующего представления. Есть еще один способ получить это событие?Событие синхронизации backbone.js в коллекции
ответ
Я считаю, что событие «sync» запускается только при изменении модели. Поэтому, если вы создадите, обновите или удалите модель, произойдет событие «sync».
В вашем случае, я думаю, вы хотите прослушать событие «перезагрузки» в коллекции.
Редактировать: Если вы устанавливаете опцию {add:true}
, то нет единственного события Магистра, которое будет срабатывать после того, как все модели будут добавлены. У вас есть несколько вариантов:
- Просто слушать
add
события и ожидать, что она будет неоднократно вызываться - эмулировать одно событие с помощью обработчика, который был подавлением дребезга контактов с помощью функции
_.debounce()
. Возвращаемое значение от
fetch()
является объектом XMLHttpRequest jQuery. Он реализует интерфейс jQuery Deferred. Так что вы могли бы послушать этот финиш. Например:myCollection.fetch({add:true}).done(function(){ myView.render(); //or whatever });
Решения для разжигания синхронизации события maunually в «успех» обратного вызова, переданном в качестве паров для выборки метод.
this.collection.fetch({add: true, success: function(collection, response){
collection.trigger('sync');
}});
Что касается магистрали 0.9.9, добавление триггера синхронизации при успешном обратном вызове больше не требуется. Из http://backbonejs.org/#changelog Консолидированные события «sync» и «error» в Backbone.sync. Теперь они запускаются независимо от наличия успешных или обратных вызовов. –
- 1. Backbone.js - Не удалось вызвать событие в коллекции
- 2. Backbone.JS событие сброса коллекции не срабатывает
- 3. Изменить данные на событие изменения коллекции Backbone.JS
- 4. Backbone.js Коллекции
- 5. Backbone.js обновление коллекции навалом
- 6. Backbone.js синхронизации - PHP возвращение
- 7. Формат коллекции в backbone.js
- 8. Изменение коллекции в backbone.js
- 9. Рендеринг коллекции в backbone.js
- 10. Изменения коллекции синхронизации с бэкендом
- 11. Каскадные коллекции и синхронизация Backbone.js?
- 12. Backbone.js удалить модель из коллекции
- 13. Backbone.js, обновляющий модель коллекции в коллекции
- 14. Событие Textarea в Backbone.js
- 15. «добавить» событие в Backbone.js
- 16. Обновить событие в Backbone.js?
- 17. Backbone.js коллекции URL схема
- 18. backbone.js итерация коллекции
- 19. Backbone.js и вложенные коллекции
- 20. Backbone.js, разрушающий подмножество коллекции
- 21. Backbone.js получить часть коллекции
- 22. Backbone.js | Данные коллекции фильтра
- 23. Backbone.js связывания коллекции в таблице
- 24. Backbone.js: Поднять событие изменения модели после извлечения коллекции?
- 25. Backbone.js пожары визуализировать дважды в коллекции добавить
- 26. Backbone.js вид коллекции вид внутри коллекции
- 27. Backbone.js Как сохранить данные в синхронизации?
- 28. Магистральное событие синхронизации, пузырящееся вниз?
- 29. Событие Backbone.js не активировано
- 30. Backbone.js событие сомнения
Событие сброса не подходит для моих нужд, потому что я вызываю выборку с помощью параметра add: true. –