Поддержание моделей в актуальном состоянии с помощью Backbone и Stickit
Я использую backbone + stickit для двухсторонней связи между моими взглядами и моделями, но столкнулся с некоторыми проблемами.
Как поддерживать модель в актуальном состоянии на сервере?
Я настроил свою коллекцию для вызова fetch() каждые 60 секунд. Это получает последнюю версию моделей с сервера и "разумно объединяет" их. Но я все еще вижу локальные изменения, перезаписанные. Если я ввел некоторый текст в текстовое поле (которое правильно связано с помощью стикита), изменения с сервера перезаписывают локальные изменения.
Как обновить сервер при изменении вида?
Stickit генерирует событие изменения в модели при изменении атрибута, но события изменения также запускаются при изменении атрибутов на сервере. Где лучшее место для вызова model.save(), поэтому он вызывается только тогда, когда stickit генерирует событие change?
1 ответ
- Вы можете сохранить модель на каждой модели
change
событие (плохая идея) - Вы можете попробовать выбрать модель с
silent
вариант, а затем просто вызвать событие изменения для некоторых атрибутов, если это необходимо (лучшая идея) - Задавать
updateView
вfalse
http://nytimes.github.io/backbone.stickit/ (хорошая идея)