Ich rufe eine API, die ich gebaut habe, an. Die Antwort gibt ein großes JSON zurück, in dem alle Daten verschachtelt sind. Beispiel:Ember-Speicher lädt nicht verschachtelt hasMany Beziehungsdaten
"feed" : {
"id": 12345,
"name": "trogdor",
"items": [
{
"id":6789,
"content": I am an items content
},
{
"id":6789,
"content": I am an items content
},
{
"id":6789,
"content": I am an items content
},
{
"id":6789,
"content": I am an items content
}
]
}
So wie Sie das Feed-Modell sehen, die hasMany
Artikel zurückzukehren.
So sind meine Modelle als solche definiert:
-Feed Modell:
export default DS.Model.extend({
name: attr('string'),
items: hasMany('item')
});
Modell Item:
export default DS.Model.extend({
content: attr('string'),
items: belongsTo('feed')
});
Aber wenn das Versprechen der Rückkehr von meinem Modell Anruf ist, keine Daten Stellen Sie ein, wenn ich die "Artikel" des Modells anrufe. Stattdessen erhalte ich nur eine Speicherklasse ohne Attribute oder Daten.
Wenn ich das Modell protokollieren und versuchen, den data
Hash zu öffnen, erhalte ich einen Ember EmptyObject
, der keine Daten enthält. ember g serializer feed
Dann definieren Sie den Serializer wie folgt:
import DS from 'ember-data';
import ApplicationSerializer from './application';
export default ApplicationSerializer.extend(DS.EmbeddedRecordsMixin, {
attrs: {
items: { embedded: 'always'},
}
});
Stellen Sie sicher, erweitern die DS.RESTadapter
in der Haupt application.js
Adapter
Ich denke, Sie müssen möglicherweise die EmbeddedRecordsMixin in Ihrem Serializer verwenden: http://emberjs.com/api/data/classes/DS.EmbeddedRecordsMixin.html – dwenzel
Das Beispiel stimmt REST oder JsonApi nicht überein, wenn Sie verwenden möchten REST überprüfen http://emberjs.com/api/data/classes/DS.RESTAdapter.html unter Beziehungen für die Verwendung jetzt Standard JsonApi überprüfen http://jsonapi.org/ –
warten, damit ich meine Beziehungen so nicht nisten kann? scheint wirklich ineffizient, um meinen Server dazu zu bringen, alles so herauszuziehen, vor allem da Rails es einfach macht, eine verschachtelte JSON-Antwort zurückzusenden – gattra