Ember.js 从EmberJS中的DS.PromiseArray获取数据

Ember.js 从EmberJS中的DS.PromiseArray获取数据,ember.js,promise,Ember.js,Promise,我是emberJS的新手,在履行承诺方面遇到了一些困难 这是我的路由器: this.resource('menus', function(){ this.resource('menu', {path: '/:menu_id'}, function(){ this.resource('submodule', {path: '/:submodule_id'}); }); }); }); 我有嵌套的路由,子路由根据给定的id返回一个menuss对象。 这是我的菜单

我是emberJS的新手,在履行承诺方面遇到了一些困难

这是我的路由器:

  this.resource('menus', function(){
    this.resource('menu', {path: '/:menu_id'}, function(){
      this.resource('submodule', {path: '/:submodule_id'});
    });
  });
});
我有嵌套的路由,子路由根据给定的id返回一个menuss对象。 这是我的菜单:

App.MenuRoute = Ember.Route.extend({
  model: function(params){
    return this.store.find('menuss', params.menu_id);
  }    
});
以下是我的模型:

App.Menuss = DS.Model.extend({
  name: DS.attr('string'),
  subModule: DS.hasMany('submodule', {async:true})
});

App.Submodule = DS.Model.extend({
  name: DS.attr('string'),
  content: DS.attr('string')
});
Menuss模型的“subModule”属性包含子模块模型id的数组。 在我的菜单模板中,我接收到一个menuss对象,我想显示每个菜单项的子模块

但是,当我调用{{this.subModule}}时,它返回
。如何从这个子模块数组中获取内容


我看了一些类似的问题,他们说使用then()方法,但我在这里似乎无法理解。

在模板中,您需要迭代属性,因为它是一个数组,ember/Handlebar将处理
PromiseArray
的同步性

{{#each item in subModule}}
  {{item.name}}
{{/each}}

您将如何在控制器中执行相同的迭代?如果您需要进行一些检查或检查子模块阵列中是否存在特定项。嗨,奥斯卡,您介意创建一个新问题并指定您面临的问题吗?它对社区的帮助更大,而且通过问答系统进行交流比使用评论框容易得多。