EmberJS - 如何在同一属性上建立hasMany关系

时间:2017-01-19 13:56:35

标签: ember.js

我有以下示例JSONAPI。我想在ember数据中加载它。

{
"data": {
    "id": "in",
    "type": "product-offering",
    "relationships": {
      "products": {
        "data": [
          {
            "type": "group-product",
            "id": "group-product-001"
          },
          {
            "type": "sub-product",
            "id": "sub-product-001"
          }
        ]
      }
    }

任何人都可以告诉我如何在产品供应模式中建立关系?

我想要那样的东西..

export default DS.Model.extend({
  products: hasMany('group-product'),
  products: hasMany('sub-product')
});

如何在2个模型的相同属性上使用hasmany关系。

1 个答案:

答案 0 :(得分:0)

正确的方法是使用多态关系。 所以你需要一个共同的基类型:

<强>模型/基层 - product.js

import DS from 'ember-data';
export default DS.Model.extend({
});

然后你的子模型:

<强>模型/组product.js

import BaseProduct is './base-product';
export default BaseProduct.extend({
});

<强>型号/子product.js

import BaseProduct is './base-product';
export default BaseProduct.extend({
});

通过它,您可以在product-offering上定义多态关系:

<强>模型/产品offering.js

import DS from 'ember-data';
export default DS.Model.extend({
  products: DS.hasMany('base-product'),
});