我是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()方法的类似问题,但我似乎无法在这里弄明白。
答案 0 :(得分:0)
在模板中,您需要迭代属性,因为它是一个数组,ember / handlebars将处理PromiseArray
的同步性。
{{#each item in subModule}}
{{item.name}}
{{/each}}