Die Stammsatz, app/Modelle/Account:Wie kann man verschachtelte Datensätze (Master-Detail-Datensätze) mit Hilfe von Ember Data laden?
import DS from 'ember-data';
export default DS.Model.extend({
username: DS.attr('string'),
emailaddress: DS.hasMany('emailaddresses'),
birthdate: DS.attr('date'),
gender: DS.attr('boolean')
});
Die Detailaufzeichnung, app/Modelle/E-Mailadresse:
import DS from 'ember-data';
export default DS.Model.extend({
account: DS.belongsTo('account'),
emailaddress: DS.attr('string'),
verificationcode: DS.attr('string'),
isverified: DS.attr('string')
});
Die Dummy JSON String aus dem Server:
{"id": 0, "Benutzername": "ikevin", "Geburtsdatum": "30.01.2017 1:34:38 PM", "gender": true, "emailaddresses": [{"id": 0 , "emailaddress": "[email protected]", "Verifikationscode": "AAAAAA", "isverified": fa LSE}]}
Der Adapter /app/adapters/account.js
import ApplicationAdapter from './application';
export default ApplicationAdapter.extend({
urlForQueryRecord(query) {
if (query.profile) {
delete query.profile;
return `${this._super(...arguments)}/profile`;
}
return this._super(...arguments);
}
});
Die Route app/route/index.js:
import Ember from 'ember';
import RSVP from 'rsvp';
export default Ember.Route.extend({
model() {
return RSVP.hash({
walletbalance: this.get('store').queryRecord('wallet', {balance: true}),
instagramfriendscount: this.get('store').queryRecord('instagram', {friendscount: true}),
accountprofile: this.get('store').queryRecord('account', {profile: true})
});
}
});
und die app/templates/Komponenten/Konto-profile.hbs:
<div class="box">
<div class="title">Your Profile</div>
<div>Username: {{account.accountprofile.username}}</div>
<div>Email Address: {{account.accountprofile.emailaddess}}</div>
<div>Birthdate: {{account.accountprofile.birthdate}}</div>
<div>Gender: {{account.accountprofile.gender}}</div>
</div>
ich denke, es gibt zwei Probleme hier:
Im Chrome Ember-Plugin sind die Daten für den Modelltyp "E-Mail-Adresse" immer 0. Das bedeutet, dass es nicht geladen ist.
In der App/templates/components/account-profile.hbs bezieht sich {{account.accountprofile.emailaddess}} nicht auf das richtige Feld. Hinweis: Vorläufig wird erwartet, dass nur 1 E-Mail-Adresse angezeigt wird.
Wie löse ich diese Probleme, um verschachtelte Datensätze zu laden und anzuzeigen?
Danke!
und ich löschte auch das "E-Mailadresse" -Modell, das zuvor generiert wurde. – ikevin8me