考虑以下简单模型......
//models/invoice.js
export default DS.Model.extend({
//created_by: DS.attr('number'), //points to a user.id
created_by: DS.belongsTo('user', {async: true, inverse: created_by}),
//approved_by: DS.attr('number'), //also points to a user.id
approved_by: DS.belongsTo('user', {async: true, inverse: approved_by}),
});
//models/user.js
export default DS.Model.extend({
name: DS.attr('string')
created_by: DS.belongsTo('invoice', {async: true, inverse: 'created_by'}),
approved_by: DS.belongsTo('invoice', {async: true, inverse: 'approved_by'})
});
相关的JSON ......
{
"invoices":
[
{
"id": "2",
"created_by": "103",
"approved_by": "109",
.....
我正在尝试为任何给定的发票记录中的每个ID值获取名称值。
# | Created | Approved
--------------------------
2 | Jim | Bobby
3 | Sue | Betty
我可以获得 approved_by 关系来填充模板中的数据....
{{item.approved_by.id}} {{item.approved_by.name}}
但不是 created_by ... {{item.created_by.id}} {{item.created_by.name}}
我可以看到一些数据在模板中呈现,然后就消失了。 我可以看到发送给API的正确请求......
http://localhost:4200/RESTAPI/v1/users/110
http://localhost:4200/RESTAPI/v1/users/200
我的问题:我做错了什么?
答案 0 :(得分:0)
这是Ember关系发挥作用的地方。在您的特定示例中,您需要告诉Ember您的发票模型属于您的用户模型。反之亦然,您的用户模型可以包含许多与其相关的发票。
可以在此处找到实际的语法:
http://emberjs.com/guides/models/defining-models/#toc_one-to-many
正确连接后,您可以执行以下操作:
invoice.get('user.name')