我想加载整个集合,然后一次只剥离记录以用作模型,而不是每次都往返于服务器。
我已经想出了如何使用 Ember.Deferred 返回一个承诺,但我无法在正确的时间得到解决的承诺。以下代码每次只输出“Found 0”:
App.PersonRoute = Ember.Route.extend({
model: function(params) {
var name = "Erik";
var promise = Ember.Deferred.create();
App.people = App.Person.find();
App.people.then(function() {
console.log('Found ' + App.people.get('length'));
var person = App.people.findProperty('name', name)
promise.resolve(person);
});
return promise;
}
});
如果我将 then() 的主体包裹在一个 setTimeout 中,并让它等待几秒钟,一切都会很好。
还有另一个我可以绑定的事件吗?我试过 App.people.on('isLoaded'),但 isLoaded 总是正确的。
谢谢!