我正在尝试在模型钩子中映射对象。我有这个由海市蜃楼提供的对象。
let temp = {"users": [
{
"id":1,
"forename":"Test",
"surname":"Name"
},
{
"id":2,
"forename":"Hans",
"surname":"Solo"
},
{
"id":3,
"forename":"Peter",
"surname":"Pan"
}
]
};
在模型钩子中我想用它:
return this.get('store').findAll('user').then(x => x.map(x => x.id + x.forename + x.surname));
我得到了这个:
1 [object Object] [object Object] 2 [object Object] [object 对象] 133000 [对象对象] [对象对象] 3 [对象 对象] [对象]
我在模板中使用它(目前仅用于测试是否有效):
{{#each model as |SingleUser|}}
{{SingleUser}}
{{/each}}
我试图只是映射到ID,这很好用。此外,如果我将直接在模型钩子中声明temp,它工作正常。是否有任何阻碍我的地图的承诺?
我需要这个工作,因为我正在实现一个ember power select multiselection,我想向用户显示id,forename和surename。
答案 0 :(得分:1)
Ember用Ember Object包装商店中的所有POJO。 与POJO不同,Ember Objects有getter / setter,您应该使用它:
obj.get('property');
obj.set('property', 'value');
您应该将代码更改为:
.then(x => x.map(x => x.get('id') + x.get('forename') + x.get('surname')));
以下是官方指南中关于吸气剂和制定者的几句话: Ember Guides(位于页面底部)。您还可以阅读get / set API(指南文章中的API的URL)。
另外,请查看computed properties。也许,这将适用于您的情况。