私はRESTAdapterを使用しており、サイドロードされたデータにアクセスする方法を理解しようとしています。Ember:ember-dataを使用してsetupControllerのサイドロードされたデータにアクセスする
{
"category": {
"categoryName": "test category",
"id": 6,
"products": [
4419,
502,
3992
]
},
"products": [{
"description": "Whatevs",
"id": 4419,
"name": "Product 1",
"price": 114.95,
"skuid": "S21046"
}, {
"description": "Whatevs",
"id": 502,
"name": "Product 2",
"price": 114.95,
"skuid": "SOLS2594"
}, {
"description": "Whatevs",
"id": 3992,
"name": "Product 3",
"price": 114.95,
"skuid": "S21015"
}]
}
私は燃えさしインスペクタの「カテゴリ」と「製品」データモデル(およびデータ)を見ることができるので、私は、彼らがロードされている知っている:ペイロードの
サンプルです。
テンプレートmodel.products
の商品にアクセスすることさえできます。ただし、setupController
のmodel.products
にアクセスできません。私が得るエラーは:
TypeError: Cannot read property '_relationships' of undefined
これは本当に私を困惑させるものです!マイルートmodel
フックは次のとおりです。
model(params) {
return this.get('store').queryRecord('category', {
id: params.id
})
}
(エラーが発生します)setupController
フックは次のとおりです。
setupController(controller, model) {
controller.set('results', model.products);
}
'カテゴリ' モデル:
export default DS.Model.extend({
products: hasMany('product'),
categoryName: attr('string')
});
'製品' モデル:
export default DS.Model.extend({
name: attr('string'),
skuid: attr('string'),
price: attr('number'),
description: attr('string')
});
(私はルートから「setupController」フックを削除した場合、動作します)マイテンプレート:
{{#each model.products as |product|}}
{{product.name}} {{product.skuid}}<br />
{{/each}}
私は何か他のものにそれを呼び出すことができるように、ルートのsetupControllerからmodel.products
にアクセスできるようにしたいと思います。どんな助けもありがたい。