2014-12-06 8 views

Antwort

11

Die kurze Antwort ist, dass Sie nicht können. Controller werden vom Container instanziiert, bevor die Route das Modell auf dem Controller festlegen konnte. Wenn dieser Objekt-Controller ein von Ember automatisch für Sie konfigurierter Controller ist, können Sie während der Initialisierung nicht auf das Modell zugreifen. Versuchen Sie stattdessen, die model-Eigenschaft zu beobachten.

Ich kann wirklich keine Dokumentation in den Anleitungen zu diesem finden, so I'll link you to the source code. Wenn Sie die Quelle für die setup Funktion lesen, werden Sie sehen, dass generateController() aufgerufen wird und dann setupController() einige Zeit später aufgerufen wird. Im Wesentlichen wird der Controller erstellt, Ember arbeitet, dann wird das Modell gesetzt. Ember legt nicht das Modell für den Controller bei der Erstellung fest.

+0

Ich sehe, was ich tun muss, ist die VM einzurichten, wie die Benutzerinteraktion ist ganz anders als die Modellstruktur. Ich werde nur das Modell für Änderungen beobachten und dann die Eigenschaften erstellen, die ich brauche. Scheint ein bisschen Arbeit, um so eine einfache Sache zu machen. – FutuToad

+1

Vergessen Sie nicht, dass sich Ihr Modell ändern kann, weshalb es während der Initialisierung nicht eingestellt wird. Daher muss sich Ihre Logik möglicherweise ändern und es wird wahrscheinlich mehr als einmal ausgeführt. Abhängig von Ihrem Anwendungsfall kann der [setupController] (http://emberjs.com/api/classes/Ember.Route.html#method_setupController) oder [resetController] (http://emberjs.com/api/classes/Ember. Route.html # method_resetController) route-Methoden können Ihnen helfen. – GJK

+0

ah SetupController sieht aus wie ich nach dem Aufruf von super() danke! – FutuToad

Verwandte Themen