使用 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);
}
我在这里创建了一个示例。