Zugriff auf das Ember-Modell in on ("init") im Objekt-Controller? Sein undefined in diesem Fall:Zugriff auf das Ember-Modell in on ("init") im Objekt-Controller
inititalise: function() {
// this.model is undefined
}.on("init"),
Zugriff auf das Ember-Modell in on ("init") im Objekt-Controller? Sein undefined in diesem Fall:Zugriff auf das Ember-Modell in on ("init") im Objekt-Controller
inititalise: function() {
// this.model is undefined
}.on("init"),
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.
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
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
ah SetupController sieht aus wie ich nach dem Aufruf von super() danke! – FutuToad