2016-03-06 6 views
7

Ich habe für v2.4 der Ember Dokumentation zu lesen, und ich kam in einem Teil, das ich nicht verstehe:Ember Docs - Read-Only Verschachtelte Daten

Einige Modelle haben Eigenschaften, die tief verschachtelte Objekte von schreibgeschützten Daten. Die naive Lösung wäre, Modelle für jedes verschachtelte Objekt zu definieren und hasMany und anglesTo zu verwenden, um die verschachtelte Beziehung neu zu erstellen. Da jedoch nur Lese-Daten niemals aktualisiert und gespeichert werden müssen, führt dies oft zur Erzeugung einer großen Menge Code mit sehr geringem Nutzen. Ein alternativer Ansatz besteht darin, diese Beziehungen unter Verwendung eines Attributs ohne Transformation (DS.attr()) zu definieren. Dies erleichtert den Zugriff auf schreibgeschützte Werte in berechneten Eigenschaften und Vorlagen, ohne dass zusätzliche Modelle definiert werden müssen.

In meinem Gebrauch Fall werde ich nur die Daten werden angezeigt wird, wird es nie wieder auf dem Server gespeichert werden. Jedes Beispiel, das ich für verschachtelte Daten gefunden habe, zeigt das Einrichten separater Modelle für jede Verschachtelungsebene und dann das Einrichten der Beziehungen, die als "naive Lösung" bezeichnet werden. Was wäre der richtige Weg? Kann mir bitte jemand das weiter erläutern? Danke im Voraus!

+0

Wo diese Daten macht aus aus? Wenn es nicht auf dem Server persistiert, ist es kein 'DS.attr()', es ist nur ein regulärer Hash. – locks

+1

Das hat Dinge für mich geklärt: http://thejsguy.com/2016/01/29/working-with-nested-data-in-ember-data-models.html –

+1

@AlexAloia Sie könnten in Erwägung ziehen, Ihre Ergebnisse als ein antworte auf deine eigene Frage, damit andere davon profitieren, wenn sie in dieselbe Situation geraten. Ihre Frage wurde nach meinem Kommentar 7-mal abgestimmt. Siehe hier [Wie schreibe ich eine gute Antwort] (http://stackoverflow.com/help/how-to-answer). – jacefarm

Antwort

0

bei den Kommentaren Sehen, wäre die Antwort:

das Objekt Wurzel definieren und die Felder des Objekts als DS.attr() definieren. Ohne Typinformationen.

Sie können weiterhin auf die verschachtelten Daten mithilfe der Punktnotation zugreifen, müssen aber keine weitere Struktur angeben.

Werfen Sie einen Blick auf den folgenden Link für einen umfassenderen Blick auf dieses Thema.

https://thejsguy.com/2016/01/29/working-with-nested-data-in-ember-data-models.html