我正在尝试编写允许登录用户将产品添加到“已保存项目”列表的功能。该模型是:
//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关系?
答案 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')
});