我试图访问嵌套的hasMany关系,期待这个承诺。不幸的是,我没有得到以下任何一个的预期结果:
// Tried the following
this.get('users.emails')
this.get('users.@each.emails')
this.get('users').get('emails')
// Trying to avoid this:
this.get('users').
then(function(users) {
var arr = Ember.A();
users.forEach(function(user, index){
arr.pushObject(user.get('emails'));
});
return array;
}).
then(function(emailArr){
// then do something
});
// Preferable
this.get('users.emails').then(function(emails){
// then do something
});
答案 0 :(得分:4)
如果您已将async
值设置为true来定义模型,请执行以下操作:
users: DS.hasMany('user', {async: true})
然后通常调用this.get('users')
将返回一个promise数组,并且在您实际开始使用它时可能无法解析。
嵌套gets
很棘手,特别是异步模型的复杂性,所以我建议你这样做:
this.get('users').then(function(users) {
users.get('emails').then(function(emails) {
// do stuff with emails.
});
}
恼人的?绝对。可能有必要吗?呀。