我有一个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
,我做错了什么?
答案 0 :(得分:1)
问题在于Ember Data为商店方法返回PromiseObject和PromiseArrays,但是由于你.then
承诺(async hasMany),它变成了常规的承诺。
如果您将其简化为:
secondFeedTrack: computed('feedTracks.[]', function() {
return this.get('feedTracks').objectAt(1);
});
})
它应该有效,因为它应该在关系结算时更新。