Iterieren über Ember.js ember-data Record Arrays

8

Ich habe den ganzen Tag mit meinem Kopf gegen dieses Problem geschlagen, und ich habe das Gefühl, dass ich einer Lösung nahe bin, aber ich kann es einfach nicht schaffen. Ich benutze Ember.js mit Ember-Data und dem Fixtures-Adapter, um eventuell zu einem REST-Adapter zu migrieren. Das grundlegende Problem ist: Ich habe Seiten und Supervisor mit einer Viele-zu-viele Beziehung. Ich möchte dem Benutzer ein Auswahlfeld für seine vorhandenen Site / Supervisor-Paarungen anzeigen, sortiert nach Site, dh:

  • Seite 1 - Supervisor 1
  • Seite 1 - Supervisor 2
  • Seite 2 - Supervisor 1 (denken Sie daran, viele zu viele)
  • Seite 2 - Supervisor 3

Ich muss diese beiden Ressourcen in einem einzigen Array zusammenführen, das ich an eine Ansicht weitergeben kann, die von Ember.Select erbt (oder erben wird). Momentan versuche ich dies mit einer Methode auf dem Supervisors-Controller, die ich "flach" nenne, weil es ein flaches Array zurückgibt, das diese Beziehungen darstellt. Der Controller ist unten abgebildet. Ich verwende .find (). Then (), um die Daten zu verarbeiten, nachdem das Versprechen erfüllt wurde. Die Daten, die ich zurückerhalte erscheint , um alle vier meiner Fixtures zu enthalten, aber wenn ich eine der aufzählbaren Methoden (insbesondere forEach) versuche, verhält sie sich so, als hätte sie nur das erste Objekt zurückgegeben. Ich habe versucht, über das Datenobjekt sowie data.get ('Inhalt') zu iterieren. Ich bin ziemlich neu in Ember, also mache ich das vielleicht sowieso falsch, aber das scheint mir sehr seltsam zu sein. Hier ist mein Code:

%Vor%

Und hier ist die Protokollausgabe vom ersten console.log () -Aufruf

%Vor%

Können Sie mir sagen, was ich hier vermisse? Ich kann nicht herausfinden, wie man auf jeden der vier resultierenden Supervisors zugreift.

Danke!

    
Ben 09.08.2013, 00:23
quelle

1 Antwort

9

Es sieht so aus, als ob Sie auf die Modelle zugreifen, bevor sie fertig geladen sind (Sie können dies in der Eigenschaft isUpdating sehen). Wenn du dich träge danach sehnst, kannst du später mit ember laufen, um die Gegenstände ein wenig später zu sehen. Oder Sie können das Modell auf dem Controller einstellen und es rendern und ember die Ansicht aktualisieren lassen, wenn die Modelle fertig geladen sind ...

%Vor%

Ссылка

Viel Glück mit Ember!

%Vor%     
Kingpin2k 09.08.2013, 01:06
quelle

Tags und Links