计算属性来自许多返回undefined - Ember

时间:2017-02-13 22:44:22

标签: ember.js

我有一个feed对象hasMany feedTracks,每个feedTrack都有track与之关联。

这些关系可以成功运行,但是当我尝试使用计算属性时,会出现问题。

在饲料模型上我有:

secondFeedTrack: computed('feedTracks.[]', function() {
  return this.get('feedTracks').then((feedTracks) => {
    return feedTracks.objectAt(1);
  });
})

当我{{log feed.secondFeedTrack}}时,我得到了:

Object { _id: 136, _label: undefined, _state: undefined, _result: undefined, _subscribers: Array[0] }

这不是什么,但它看起来并不正确。

当我{{log feed.secondFeedTrack.track}}时,我得到undefined

如果没有从计算属性中正确获取feedTrack,我做错了什么?

1 个答案:

答案 0 :(得分:1)

问题在于Ember Data为商店方法返回PromiseObject和PromiseArrays,但是由于你.then承诺(async hasMany),它变成了常规的承诺。

如果您将其简化为:

secondFeedTrack: computed('feedTracks.[]', function() {
  return this.get('feedTracks').objectAt(1);
  });
})

它应该有效,因为它应该在关系结算时更新。