更优雅的方式来代理Ember数组属性

时间:2014-01-02 04:11:34

标签: ember.js

我有以下数组:

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?还是其他一些漂亮的功能?

我很乐意根据要求提供更多信息:)

1 个答案:

答案 0 :(得分:1)

如果要等待页面呈现直到加载用户,那么您应该使用路由器中的模型挂钩。如有必要,您可以使用Ember.RSVP.hash(https://stackoverflow.com/a/20523510/1234490)返回多个模型。然后在控制器中添加一个函数eligibleStudens。我认为它应该在控制器中,因为它沿着completedTodos函数的行。例如。

这样你就不会注意到口吃了。 Lemme知道它是否有效:)