如何定期更新Ember的模型(例如在setInterval中)?

我有一个Ember应用程序,其模型来自Ajax调用。 第一个调用工作得很好,我有Ember.Route的模型钩子返回一个Ajax调用的promise,它检索要显示的数据。

但是这个数据在后端经常发生变化,我想让webapp定期轮询服务器,比如每5秒轮询一次,然后更新或甚至更好地将模型数据与新检索的数据完全交换。

用Ember.js做这件事的合适方法是什么? 我是Ember的新手,所以我对此感到有些失落。

我认为这是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数据,只需在控制器中添加递归setTimeoutsetInterval并设置model属性。 这是一个从UI事件设置模型的简单示例 。

如果您正在使用ember-data我认为以下线程有更准确的解决方案:

  • Ember模型在间隔中重新加载
  • 如何重新加载余烬数据记录?