我有一个EmberJS ArrayController.我想在这个控制器上有一个计算属性neurons
,它是model
属性的一个子集.子集是根据绑定到的侧边栏中的切换按钮计算的currentDataset
.另一个计算属性,activePlots
则取决于neurons
; 该Neuron
模型有一个hasMany
以关系Plot
,并activePlots
加载所有在每个神经元对象相关联的情节对象neurons
.
目前我正试图这样做mapBy
,但我遇到了一个问题.每次检索一个Neuron
对象都会plots
返回一个PromiseArray
.我需要立即操纵所有返回的图.我知道我可以调用then
单个调用的promise结果get('plots')
,但是如何在get('plots')
所有神经元的调用返回后才执行代码?
neurons: ( -> @get('model').filterBy('dataset', @get('currentDataset')) ).property('model', 'currentDataset'), activePlots: ( -> plots = @get('neurons').mapBy('plots') # ...code to execute after all plots have loaded ).property('neurons')
更新:从回调console.log(plotSets)
内部到控制台输出的图片then
Ember.RSVP.all(@get('neurons').mapBy('plots')).then (plotSets) -> console.log(plotSets)