Come accedere all'istanza del nuovo router Ember? I documenti API sembrano essere riferiti al vecchio router o non sono corretti: http://emberjs.com/api/classes/Ember.Router.htmlAccesso all'istanza del nuovo router di brace
risposta
RouterV2 non è facilmente accessibile tramite una costante globale, rendendo più difficile fare le cose nel modo "sbagliato". La cosa principale da tenere a mente è che non si dovrebbe accedere al router (o altro) tramite una variabile globale. Fare così è una pratica generalmente cattiva, che porta a un codice molto difficile da testare. Sfortunatamente con il vecchio router è stato abbastanza facile fare qualcosa come App.router.transitionTo('whatever')
- puoi trovare esempi di tutto questo, ma non è una buona idea.
Invece di lavorare con un riferimento globale, ember inietta i riferimenti locali al router solo in quei punti in cui è necessario.
- Da un modello: inaccessibile. I modelli non devono parlare al router
- Da un controller:
router = this.get('target')
- Da una vista: la vista non deve accedere al router, ma gli eventi inviati al controller si riempiono di bolle. Ad esempio:
this.get('controller').send('search', term)
- Da un modello: utilizzare gli helper
{{action}}
o{{#linkTo}}
per inviare eventi (tramite il controller) o passare a un altro URL.
Per ulteriori dettagli, vedere le note a questo impegno: https://github.com/emberjs/ember.js/commit/5becdc4467573f80a5c5dbb51d97c6b9239714a8
** Aggiornamento **
Ho messo insieme un fulmine parlare avanti con maggiori dettagli sul nuovo router di gennaio EmberNYC Meetup - diapositive sono qui: How I learned to stop worrying and love the router
credo che questo funziona in tutto il luogo:
App.Router.router.transitionTo('home')
Lo uso in una vista. Sono consapevole che qui c'è un po 'di odore di codice. Tuttavia, funziona.
Sicuramente un odore di codice. Invece, inviare un'azione e gestirla in un percorso di transizione. –
Si può provare questo:
App.__container__.lookup('router:main').transitionTo('name_of_your_route');
Questo è OK da fare per il debug ma dovrebbe essere evitato nel codice di produzione. –
- 1. Accesso al nuovo router ember nella console
- 2. onEnter Transizioni con React Router e Redux Simple Router non rendono il nuovo componente del percorso
- 3. Brace-racchiuso lista di inizializzazione del costruttore
- 4. Nuovo accesso Facebook Firebase
- 5. Accesso all'ambito di uscita di Angular-UI-Router?
- 6. Associazioni polimorfiche di brace
- 7. Angular2 rc1, nuovo router e il passaggio di dati
- 8. transizione dopo il salvataggio del modello di dati di brace
- 9. Risoluzione della vista di Brace e di Dragula del DOM
- 10. router ngrx-router vs angular2
- 11. Router angolare UI - Parametri dello stato di accesso nel genitore
- 12. router Angular2 VS router ui-router-ng2 VS ngrx
- 13. Quale framework JavaScript usi con trigger.io? (backbone, knockout, brace, angolare)
- 14. Componenti di brace nella sottodirectory
- 15. Bundle di manubri e brace
- 16. generare componenti in sotto-cartelle in brace/brace-cli
- 17. Appengine Cloud Endpoint con nuovo accesso Google+
- 18. Accesso a Redux Store dalle route impostate tramite React Router
- 19. Prependola attributo opzionale nell'URI angolare del router-router
- 20. Cancella tutte le queryParam con il nuovo router v3 Angular2
- 21. Come utilizzare il nuovo NavigationStart @ angular-router 3.0.0-alpha. *
- 22. Formato di registrazione del router Heroku
- 23. Intestazione globale del router di Reazione
- 24. Ordine di precedenza del router in express.js
- 25. Compilazione brace-dati
- 26. ui-router AngulaJs. Test del goniometro fallito
- 27. Firebase e nuovo accesso Google su Android
- 28. Inizializzazione Double Brace Tipo Confusion
- 29. Postgres grilletto dopo inserto accesso NUOVO
- 30. Brace elision nell'inizializzazione std :: array
E dal percorso è accessibile come 'get (questo, 'router')' – Pavel