Update - Teillösung - siehe untenBeschaffen von Beziehungsdaten Ember Modell aus innerhalb einer Route oder Komponente
Ich habe eine (Produktkategorie) Modell mit vielen zu vielen Beziehung zB
export default DS.Model.extend({
name: DS.attr('string'),
products:DS.hasMany('product')
});
Meine Kategorie Route (product.items) von diesem Modell unterstützt, und es ist kein Problem, das im Zusammenhang Produktdaten anzeigt:
{{#each model.data.products as |item|}}
{{item.name}}
{{/each}}
Allerdings muß ich Beziehen Sie die zugehörigen Daten innerhalb der untergeordneten Route (product.items.item). Der Modellhaken für die Route sieht so aus:
model(params) {
let parentModel = this.modelFor('product.items'),
let model = this.store.findRecord('product',params.id);
return Ember.RSVP.hash({
data:model,
parentData:parentModel
});
}
Ich kann dann dieses Modell dann an eine Komponente weitergeben.
Was ich versuche zu tun, ist der Zugriff innerhalb einer Komponente (oder innerhalb der Route). das Modell unter der Annahme ist in der Komponente als parentModel verfügbar ich den Namen der übergeordneten Kategorie als
let name = parentModel.data.get('name');
dachte ich zugreifen kann ich das gleiche für die entsprechenden Produkte tun könnte also
let products = parentModel.data.get('products');
Doch diese doesn Gib nichts zurück. Mache ich hier einen grundlegenden Fehler?
Der Grund, warum ich beim Anzeigen eines Elements auf die anderen Produkte in der übergeordneten Kategorie zugreifen möchte, ist, dass der Benutzer durch jedes Element paginieren soll.
Verwenden des JSONAPIAdapter.
Vielen Dank im Voraus!
aktualisieren
Dieser Code funktioniert, wenn ich aus der Kategorie geordneten Ebene - aber nicht, wenn man auf sie sind Artikelseite und die App ist auf einem Code-Update aktualisiert - weshalb ich nicht war die erwarteten Ergebnisse erhalten. Also teilweise da! Wird aktualisiert, wenn ich eine vollständige Lösung finden kann!
Hallo, ich bin mir nicht sicher, warum ich nicht auf die verwandten Daten bei einer App-Aktualisierung zugreifen kann, wenn ich das Produkt anschaue. Ich kann zum Beispiel immer noch auf den Namen der Kategorie zugreifen, wie oben angegeben, aber wenn ich die Länge des Produkt-Arrays zurückgebe (was zum Beispiel 5 sein sollte), werde ich Null. Das war, was mich vorher warf, als ich immer die App auf der Produktdetail (product.items.item) Route auffrischte! – Newfoundland
Habe das jetzt funktioniert ... benutze den get call als ein Versprechen welches ich was ich in meiner Komponente machen muss zB mainModel.data.get (this.get ('relatedModel')). Dann (relatedItems => { console .log (relatedItems.get ('length')); relatedItems.forEach (Funktion (Artikel, Index)) { console.log (item.get ('Name')); }); }, reject = > { console.log ('Fehler:' + Zurückweisung); }); – Newfoundland
Sie können Ihre eigene Frage für die Nachwelt beantworten - gehen Sie voran und erstellen Sie eine Antwort mit Ihren Ergebnissen und "akzeptieren" Sie sie. –