javascript - Как периодически обновлять модель Эмбера (например, в setInterval)?




2 Answers

Я думаю, что это хороший пример использования Ember.run.later , который ограничивает частоту вызовов функций.

Вы можете просто добавить обновление к вашей модели, похожее на это:

App.Model = DS.Model.extend({
   poll: function() {
      var _this = this;
      Ember.run.later( function() {
         _this.reload(); 
         _this.poll();
      }, 500);
   }.observes('didLoad'),
});

У меня есть приложение Ember, модель которого поступила из Ajax-вызова. Первый вызов работает отлично, у меня есть ловушка модели Ember.Route возвращающая обещание вызову Ajax, который извлекает данные для отображения.

Но эти данные часто меняются в бэкэнде, и я хочу, чтобы веб-приложение периодически опрашивало сервер, скажем, каждые 5 секунд, и обновляло или, что еще лучше, полностью меняло данные модели на вновь полученные.

Как правильно сделать это с Ember.js? Я новичок в Эмбер, поэтому я немного потерян с этим.




Вы можете поместить этот код в метод init () маршрута:

init() {
  this._super(...arguments);
  setInterval(() => {
    this.refresh();
  }, REFRESH_INTERVAL);
},



Related