首先:我不知道如何在 Ember.js 中使用 Promise。我想调用我的控制器的一个属性,该属性取决于也是嵌套的异步模型数据。
此外,我的模型看起来像这样:
+-------------+ +------------+
| Method | hasMany | Practice |
| +---------> |
| | | |
+-------------+ +------------+
|
| hasMany
+-----v------+
| Alpha |
| |
| |
+------------+
所以我创造了这样的东西:
allAlphas: function() {
var self = this;
var returnValue = "nichts";
var promises = {
allAlphas: self.get('model.method').then(function(method) {
//get the practices
return method.get('practices');
}).then(function(practices) {
//get the alphaSField in EVERY practice
//the alphasField is the (hasmany 'alpha')member in practice
var alphasFields = practices.getEach('alphas');
return Ember.RSVP.all(alphasFields).then(function() {
return alphasFields;
});
}).then(function(alphasFields) {
// here: get all the alphas via promise or something
})
};
Ember.RSVP.hash(promises).then(function(results) {
// return all the alphas (of all pracitces in the method) in some way
});
}.property()
有两个问题(就像评论中已经提到的那样):
- 如何加载嵌套的 hasMany 异步模型,如所有实践中的所有 alpha。
- 如何将完整结果作为 RSVP.hash-Method 中的属性返回以在模板或其他内容中使用
有谁能够帮助我?
编辑 06/20/2015
正如@Kingpin2k 建议的那样,我添加了一个要点以更好地理解我的问题: https ://gist.github.com/MarcManhart/e5c1d91e8fdfd876de37