2017-01-19 2 views
1

У меня есть пример JSONAPI. Я хочу загрузить его в данные ember.EmberJS - Как установить hasMany отношения по одному атрибуту

{ 
"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') 
}); 

Как я могу использовать отношения hasmany на тот же атрибут для 2-х моделей.

ответ

0

Правильный способ сделать это - использовать полиморфные отношения. Так что вам нужен общий базовый тип:

модели/BASE-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'), 
}); 
+0

Он работал для меня ... Спасибо Lux! !!! :) –