计算属性来自有许多返回未定义的 - Ember



我有一个hasMany feedTracks feed对象,每个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

问题是Ember Data为存储方法返回PromiseObject和PromiseArrays,但由于您正在.then promise(async hasMany(,它变成了常规承诺。

如果将其简化为:

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

它应该工作,因为它应该随着关系的解决而更新。

最新更新