Ich benutze RESTAdapter und versuche herauszufinden, wie man auf seitengeladene Daten zugreifen kann.
Eine Probe der Nutzlast ist:Ember: Zugriff auf sidegeladene Daten in setupController mit ember-Daten
{
"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"
}]
}
I ‚Kategorie‘ sehen und ‚Produkt‘ Datenmodelle (und Daten) in dem glühenden Kohlen Inspektoren, so dass ich weiß, dass sie geladen werden.
Ich kann sogar auf die Produkte in der Vorlage model.products
zugreifen. ABER ich kann nicht auf model.products
in der Route setupController
zugreifen. Der Fehler, den ich bekomme ist:
TypeError: Cannot read property '_relationships' of undefined
Das ist wirklich verblüfft mich! Meine Route model
Haken ist:
model(params) {
return this.get('store').queryRecord('category', {
id: params.id
})
}
Der setupController
Haken (die bewirkt, dass die Fehler) ist:
setupController(controller, model) {
controller.set('results', model.products);
}
Der 'Kategorie' Modell:
export default DS.Model.extend({
products: hasMany('product'),
categoryName: attr('string')
});
Das 'Produkt' Modell:
export default DS.Model.extend({
name: attr('string'),
skuid: attr('string'),
price: attr('number'),
description: attr('string')
});
Meine Vorlage (das funktioniert, wenn ich die ‚setupController‘ Haken aus der Route entfernen):
{{#each model.products as |product|}}
{{product.name}} {{product.skuid}}<br />
{{/each}}
Ich mag würde die Lage sein, model.products
für den Zugriff auf von der setupController Route so kann ich es noch etwas anderes nennen. Jede Hilfe wird geschätzt.