ember 来自 ember 数据存储的地图对象

ember map object from ember data store

我正在尝试在模型挂钩中映射一个对象。我有 mirage 提供的这个对象。

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 Object] 133000[object Object][object Object] 3[object Object][object Object]

我正在模板中使用它(目前只是为了测试它是否有效):

{{#each model as |SingleUser|}}
{{SingleUser}}
{{/each}}

我试着只映射到 ID,这很好用。此外,如果我直接在模型挂钩中声明温度,它就可以正常工作。有什么承诺阻碍了我的地图吗?

我需要这个工作,因为我正在实施 ember power select multiselection 并且我想向用户显示 id、forename 和 surename。

Ember 用 Ember 对象包装商店中的所有 POJO。 与 POJO 不同,Ember 对象有 getters/setters,你应该像这样使用它:

obj.get('property');
obj.set('property', 'value');

您应该将代码更改为:

.then(x => x.map(x => x.get('id') + x.get('forename') + x.get('surname')));

官方指南中关于getters和setters的内容只说几句: Ember Guides(在页面底部)。您还可以阅读 get/set API(指南文章中 API 的 URL)。

另外,看看computed properties。可能这对您的情况有用。