使用 ember 数据,您可以使用重新加载数据。recordArray.update()
,并 window.setInterval
用于安排到您想要的时间。解决后会获得一个RecordArray
实例Model.find()
。
Model.find().then(function(recordArray) {
});
最简单的方法是使用 ember 方法,在钩子中返回数据model
,并在钩子中获取 recordArray 实例afterModel
。因此,使用此实例update
在某个特定时间使用执行setInverval
,例如:
App.NodesIndexRoute = Ember.Route.extend({
model: function() {
return App.Nodes.find();
},
afterModel: function(recordArray) {
setInterval(function() {
recordArray.update();
}, 1000); //each second
}
});
请注意过渡到节点索引路由,因为每次都会创建一个新的 setInterval
,并且每次过渡到该路由时都会加载 n 倍。
要解决此问题,请存储返回的 id setInterval
,并使用clearInterval
删除上一个任务:
afterModel: function() {
if (this.get('jobId')) {
clearInterval(jobId);
}
var jobId = setInterval(function() {
record.update()
}, 1000); // each second
this.set('jobId', jobId);
}
我在这里创建了一个示例。