我有以下数组:
eligible_students: function() {
self = this;
this.store.find('user', App.CurrentUser.get('id')).then(function(user) {
console.log(user);
var students = user.get('students').then(function(students) {
console.log(students);
var results = user.get('students').map(function(item) {
return {student: item, queued: false};
});
console.log(results);
self.set('eligible_students', results);
});
}
);
return [];
}.property('App.CurrentUser.id')
一切正常,但渲染时会出现断言,因为我在返回空数组后添加了结果。有没有办法做到这一点本来就利用了Ember Promises?还是其他一些漂亮的功能?
我很乐意根据要求提供更多信息:)
答案 0 :(得分:1)
如果要等待页面呈现直到加载用户,那么您应该使用路由器中的模型挂钩。如有必要,您可以使用Ember.RSVP.hash(https://stackoverflow.com/a/20523510/1234490)返回多个模型。然后在控制器中添加一个函数eligibleStudens
。我认为它应该在控制器中,因为它沿着completedTodos
函数的行。例如。
这样你就不会注意到口吃了。 Lemme知道它是否有效:)