コレクション全体をロードしてから、サーバーへの往復を毎回行わずに、一度に 1 つずつレコードを剥がしてモデルとして使用したいと考えています。
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 は常に true です。
ありがとう!