2014-12-06 5 views

risposta

11

La risposta breve è che non è possibile. I controllori vengono istanziati dal contenitore prima che il percorso abbia avuto la possibilità di impostare il modello sul controller. Se questo controller oggetto è un controller configurato automaticamente per te da Ember, non sarai in grado di accedere al modello durante l'inizializzazione. Prova invece a osservare la proprietà model.

Non riesco a trovare alcuna documentazione nelle guide su questo, quindi I'll link you to the source code. Se leggi la fonte per la funzione setup, vedrai che generateController() viene chiamato e quindi setupController() viene chiamato qualche tempo dopo. Essenzialmente, il controller è stato creato, Ember fa un po 'di lavoro, quindi il modello è impostato. Ember non imposta il modello per il controller durante la creazione.

+0

Vedo, quello che devo fare è impostare la VM poiché l'interazione dell'utente è molto diversa dalla struttura del modello. Osserverò semplicemente il modello per le modifiche e quindi creerò le proprietà di cui ho bisogno. Sembra un po 'di lavoro da fare solo una cosa così semplice. – FutuToad

+1

Non dimenticare che il tuo modello può cambiare, motivo per cui non è impostato durante l'inizializzazione. Quindi la tua logica potrebbe dover cambiare e probabilmente verrà eseguita più di una volta. A seconda del tuo caso d'uso, [setupController] (http://emberjs.com/api/classes/Ember.Route.html#method_setupController) o [resetController] (http://emberjs.com/api/classes/Ember. Route.html # method_resetController) i metodi di instradamento potrebbero aiutarti. – GJK

+0

ah setupController sembra quello di cui ho bisogno dopo aver chiamato super() grazie! – FutuToad

Problemi correlati