Ember.js:如何绑定记录加载到DS.RecordArray时应该调用的处理程序?

Ember.js:如何绑定记录加载到DS.RecordArray时应该调用的处理程序?,ember.js,ember-data,Ember.js,Ember Data,在执行Model.find()时,使用Ember.js和Ember数据,我希望能够绑定一个处理程序,该处理程序在生成的DS.RecordArray中记录可用时立即被调用。我已经找到了解决办法,但我觉得一定有更好的办法 我当前的解决方案使用,例如,对于一些虚构的模型,App.Widget: //找到小部件! var widgets=App.Widget.find(); //当小部件记录可用时收到通知。。。 var arrayObserver=Ember.Object.create({ arrayW

在执行
Model.find()
时,使用Ember.js和Ember数据,我希望能够绑定一个处理程序,该处理程序在生成的
DS.RecordArray
中记录可用时立即被调用。我已经找到了解决办法,但我觉得一定有更好的办法

我当前的解决方案使用,例如,对于一些虚构的模型,
App.Widget

//找到小部件!
var widgets=App.Widget.find();
//当小部件记录可用时收到通知。。。
var arrayObserver=Ember.Object.create({
arrayWillChange:函数(开始、移除计数、添加计数){
//小部件记录即将加载。
},
ArrayIDChange:函数(开始、删除计数、添加计数){
//小部件记录现在已加载。
var myWidget=widgets.objectAt(0);
}
});
//将上面的arrayObserver添加到widgets数组中
addArrayObserver(arrayObserver);

这是实现我想要的目标的既定方法,还是有更好的方法?

在绑定到所需数据的控制器中,您可以观察content.isLoaded属性,该属性将在存储适配器加载数据后设置为true:

contentLoaded: function() {
    console.log('controller content is loaded from store');
}.observes('content.isLoaded')
您可以使用来实现这一点

//找到小部件!
App.Widget.find()
.then(函数(小部件){
var myWidget=widgets.objectAt(0);
});

谢谢,在这种情况下,尽管我正在用我的
索引的重定向方法加载记录。我很惊讶有一个
widgets.on(“loaded”),function(){…
快捷方式,或者类似的东西。