如何定期更新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数据,只需在控制器中添加递归setTimeout
或setInterval
并设置model
属性。 这是一个从UI事件设置模型的简单示例 。
如果您正在使用ember-data我认为以下线程有更准确的解决方案:
- Ember模型在间隔中重新加载
- 如何重新加载余烬数据记录?