我的应用程序每500毫秒重新加载一次数据。如何将代码更改为每500毫秒不重新加载,但是在上次重新加载后等待500毫秒以触发新代码?
App = Ember.Application.create({
ready: function() {
var switchboard = App.Switchboard.find(switchboard_id);
setInterval(function() {
switchboard.reload();
}, 500);
}
});
答案 0 :(得分:0)
我刚刚做了类似的事情。您应该在路线上使用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
的{{1}}返回Ember Data
(http://emberjs.com/blog/2013/05/28/ember-data-0-13.html)
我认为你可以做到这一点来实现:
promises
首先,我们运行App = Ember.Application.create({
ready: function() {
var switchboard;
setInterval(function() {
switchboard = App.Switchboard.find(switchboard_id).then(function(){
setTimeout(function(){}, 499);
});
}, 1);
}
});
以在无限setInterval
中运行此功能。接下来在每次循环迭代中,我们找到loop
,当Switchboard
从外部服务器加载那些传递给Ember data
的{{1}}的数据。这个功能只需等待499ms:)