访问相关模型

时间:2015-02-17 18:33:57

标签: ember.js ember-data ember-cli

考虑以下简单模型......

//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

我的问题:我做错了什么?

1 个答案:

答案 0 :(得分:0)

这是Ember关系发挥作用的地方。在您的特定示例中,您需要告诉Ember您的发票模型属于您的用户模型。反之亦然,您的用户模型可以包含许多与其相关的发票。

可以在此处找到实际的语法:

http://emberjs.com/guides/models/defining-models/#toc_one-to-many

正确连接后,您可以执行以下操作:

 invoice.get('user.name')