我刚刚做了类似的事情。您应该activate
在您的路线上使用属性(http://emberjs.com/api/classes/Ember.Route.html#method_activate)。
查看此拉取请求:https ://github.com/chrmod/rowmark/pull/2/files
一些例子:
App.NoteRoute = Ember.Route.extend({
activate: function() {
this.interval = setInterval(function() {
this.get('controller').set('toSave', true);
}.bind(this), 5000);
}
})
更新
我理解你错了。对此感到抱歉。
首先你需要知道find
从Ember Model
或Ember Data
返回promises
(http://emberjs.com/blog/2013/05/28/ember-data-0-13.html)
我认为你可以做这样的伎俩来实现:
App = Ember.Application.create({
ready: function() {
var switchboard;
setInterval(function() {
switchboard = App.Switchboard.find(switchboard_id).then(function(){
setTimeout(function(){}, 499);
});
}, 1);
}
});
首先,我们运行setInterval
infinity 运行它loop
。接下来在每个循环迭代中,我们找到Switchboard
并且当Ember data
从外部服务器加载那些运行的数据时function
传递给then
. 这个函数只需等待 499 毫秒 :)