Поддержание моделей в актуальном состоянии с помощью Backbone и Stickit

Я использую backbone + stickit для двухсторонней связи между моими взглядами и моделями, но столкнулся с некоторыми проблемами.

Как поддерживать модель в актуальном состоянии на сервере?

Я настроил свою коллекцию для вызова fetch() каждые 60 секунд. Это получает последнюю версию моделей с сервера и "разумно объединяет" их. Но я все еще вижу локальные изменения, перезаписанные. Если я ввел некоторый текст в текстовое поле (которое правильно связано с помощью стикита), изменения с сервера перезаписывают локальные изменения.

Как обновить сервер при изменении вида?

Stickit генерирует событие изменения в модели при изменении атрибута, но события изменения также запускаются при изменении атрибутов на сервере. Где лучшее место для вызова model.save(), поэтому он вызывается только тогда, когда stickit генерирует событие change?

1 ответ

  1. Вы можете сохранить модель на каждой модели change событие (плохая идея)
  2. Вы можете попробовать выбрать модель с silent вариант, а затем просто вызвать событие изменения для некоторых атрибутов, если это необходимо (лучшая идея)
  3. Задавать updateView в false http://nytimes.github.io/backbone.stickit/ (хорошая идея)
Другие вопросы по тегам