编程语言
首页 > 编程语言> > javascript-在Ember / Ember数据中访问嵌套的hasMany关系

javascript-在Ember / Ember数据中访问嵌套的hasMany关系

作者:互联网

我正在尝试访问嵌套的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
});

解决方法:

如果您已将异步值设置为true来定义模型,如下所示:

users: DS.hasMany('user', {async: true})

那么通常调用this.get(‘users’)将返回一个promise数组,并且在您实际开始使用它时可能无法解决.

嵌套获取非常棘手,特别是在异步模型复杂的情况下,所以我建议您这样做:

this.get('users').then(function(users) {
    users.get('emails').then(function(emails) {
        // do stuff with emails.
    });
}

烦人吗绝对.大概有必要吗?是的

标签:ember-js,ember-data,javascript
来源: https://codeday.me/bug/20191030/1964369.html