【问题标题】:Ember not loading embedded polymorphic relationshipEmber 不加载嵌入的多态关系
【发布时间】:2015-09-21 21:36:54
【问题描述】:

我正在使用 Ember 的 RESTAdapter,并且有一个非常标准的多态关系:

// models/order.js
import DS from 'ember-date';
export default DS.Model.extend({
  transferableItem: DS.belongsTo('transferable-item', { polymorphic: true })
});

// models/transferable-item.js
import DS from 'ember-date';
export default DS.Model.extend({
  order: DS.belongsTo('order')
});

// models/ticket.js
import TransferableItem from './transferable-item';
export default TransferableItem.extend();

我的 JSON 如下所示:

{
  "orders": [{
    "id": 111,
    "transferableItem": 999
    "transferableItemType": "Ticket"
  }],
  "tickets": [{
    "id": 999
  }]
}

查看 Ember Inspector,订单和工单都正确加载。然而,他们两人之间的联系被打破了。我收到此错误:

您在带有 id 的“订单”上查找了“transferableItem”关系 999 但未加载某些关联记录。要么做 确保它们都与父记录一起加载,或指定 关系是异步的 (DS.belongsTo({ async: true }))

根据 Ember Inspector,没有加载任何 transferable-items,所以在某种程度上,这个错误是有道理的。但是,既然这是多态关系,难道不应该只是尝试使用关联的Ticket,实际上已经加载了吗?

【问题讨论】:

    标签: ember.js polymorphic-associations


    【解决方案1】:

    继续挖掘,发现嵌入记录时需要更改语法。 JSON 应如下所示:

    {
      "orders": [{
        "id": 111,
        "transferableItem": {
          "id": 999
          "type": "ticket"
        }
      }],
      "tickets": [{
        "id": 999
      }]
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-12
      • 2014-10-11
      • 1970-01-01
      • 1970-01-01
      • 2016-05-04
      • 1970-01-01
      • 2015-02-21
      • 1970-01-01
      相关资源
      最近更新 更多