从EmberJS中的DS.PromiseArray获取数据

时间:2014-01-31 16:37:05

标签: ember.js promise

我是emberJS的新手,我在使用promises方面遇到了一些麻烦。

这是我的路由器:

  this.resource('menus', function(){
    this.resource('menu', {path: '/:menu_id'}, function(){
      this.resource('submodule', {path: '/:submodule_id'});
    });
  });
});

我有嵌套路由,子路由根据给定的id返回一个menuss对象。 这是我的MenuRoute:

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'属性包含一个Submodule模型id的数组。 在我的菜单模板中,我收到一个menuss对象,我想显示每个菜单项有的SubModules。

但是,当我调用{{this.subModule}}时,它会返回<DS.PromiseArray:ember488>。如何从此subModule数组中获取内容?

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

1 个答案:

答案 0 :(得分:0)

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

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