ember-data:以hasMany关系加载记录

时间:2017-12-12 05:57:24

标签: ember.js ember-data

我正在尝试编写允许登录用户将产品添加到“已保存项目”列表的功能。该模型是:

//saveditem.js model
export default DS.Model.extend({
    user: belongsTo('user'),
    product: belongsTo('product', { async: true }),
    dateAdded: attr('string')
});

在显示已保存项目的saveditems路由上,model()挂钩为:

model() {
    return this.get("store").findAll('saveditem');
}

api正在使用JUST返回记录:

{
    "dateAdded": "Mon, 11 Dec 2017 20:59:10 GMT",
    "id": 4458,
    "product": 4458,
    "user": "me"
},
{
    "dateAdded": "Sun, 10 Dec 2017 10:26:02 GMT",
    "id": 3657,
    "product": 3657,
    "user": "me"
}
...

如何使用ID来获取加载实际产品的hasMany关系?

1 个答案:

答案 0 :(得分:0)

我想出来了(由arne.b提出的问题)。设置是正确的,但我调用这些项目的方式不是。

我在模板中这样做:

{{#each model as |result|}}
    <div>
    {{result.productName}}
    </div>
{{/each}}

哪个打印空div,因为它循环浏览了我的saveditem记录,但这种关系并没有解决,因为我没有调用产品对象本身。正确的方法:

{{#each model as |result|}}
    <div>
    {{result.product.productName}}
    </div>
{{/each}}

我还需要在模型上设置async: true

export default DS.Model.extend({

    user: belongsTo('user'),
    product: belongsTo('product', { async: true }),
    dateAdded: attr('string')

});