Jak uzyskać dostęp do instancji nowego routera Ember? Dokumenty API wydają się odnosić do starego routera lub są niepoprawne: http://emberjs.com/api/classes/Ember.Router.htmlDostęp do instancji nowego routera Ember
Odpowiedz
RouterV2 nie jest łatwo dostępny za pośrednictwem stałej globalnej, przez co trudniej jest robić rzeczy w niewłaściwy sposób. Najważniejszą rzeczą, o której należy pamiętać, jest to, że nie powinno się uzyskiwać dostępu do routera (lub czegokolwiek innego) za pośrednictwem zmiennej globalnej. Jest to generalnie zła praktyka, prowadząca do bardzo trudnego do sprawdzenia kodu. Niestety ze starym routerem dość łatwo było zrobić coś takiego, jak App.router.transitionTo('whatever')
- możesz znaleźć przykłady tego w każdym miejscu, ale nie jest to dobry pomysł.
Zamiast pracować z odniesieniem globalnym, ember podaje lokalne odwołania do routera tylko tam, gdzie jest to potrzebne.
- Od modelu: niedostępny. Modele nie powinny rozmawiać z routerem.
- Ze sterownika:
router = this.get('target')
- Z widoku: Widok nie powinien mieć dostępu do routera, ale zdarzenia wysyłane do kontrolera będą dymić. Na przykład:
this.get('controller').send('search', term)
- Z szablonu: użyj pomocników
{{action}}
lub{{#linkTo}}
, aby wysyłać zdarzenia (za pośrednictwem kontrolera) lub przejść do innego adresu URL.
Więcej szczegółów można znaleźć wskazówek dotyczących tego zobowiązać: https://github.com/emberjs/ember.js/commit/5becdc4467573f80a5c5dbb51d97c6b9239714a8
** Aktualizacja **
ułożyła piorun rozmawiać z bardziej szczegółowo na nowym routerze do stycznia EmberNYC Meetup - slajdy tutaj: How I learned to stop worrying and love the router
wierzę, że to działa w każdym miejscu:
App.Router.router.transitionTo('home')
Używam go w widoku. Zdaję sobie sprawę, że tu jest trochę kodu. Jednak działa.
zdecydowanie zapachu kodu. Zamiast tego wyślij akcję i obsłuż ją w drodze do przejścia. –
Można spróbować to:
App.__container__.lookup('router:main').transitionTo('name_of_your_route');
Można to zrobić podczas debugowania, ale należy tego unikać w kodzie produkcyjnym. –
- 1. Dostęp do nowego routera ember w konsoli
- 2. Ember routera i sterownik logiczny
- 3. Jak uzyskać dostęp do routera globalnie w js szkieletu?
- 4. Jak uzyskać dostęp do magazynu danych Ember z konsoli?
- 5. Jak uzyskać dostęp do globalnej zmiennej "App" Ember w aplikacji Ember CLI?
- 6. Do "nowego" lub nie do "nowego"
- 7. Dostęp widget instancji z zewnątrz widget
- 8. Szkielet przechodzący model do routera
- 9. Jak uzyskać dostęp do dzienników mysql z instancji RDS
- 10. Dostęp do atrybutu assert na fałszywej instancji uzyskał
- 11. Klasy PHP: uzyskaj dostęp do wywołującej instancji z wywołanej metody
- 12. Java Homework Help (Dostęp do statycznego elementu poprzez Instancji Reference)
- 13. Jak uzyskać dostęp do zmiennej instancji w metodzie mixin?
- 14. Jak uzyskać dostęp do statycznego elementu na instancji?
- 15. Jak uzyskać dostęp do instancji WebSockets w Jetty 9?
- 16. Ember związany bloków Ember
- 17. Jakie są zalety wywoływania nowego w instancji obiektu?
- 18. jak zaktualizować aplikację ember-cli do ember-data 1.0.0-beta9?
- 19. Wiele do wielu relacji z Ember, danymi ember i szynami
- 20. Ember Ember-views.render-double-zmodyfikować
- 21. Ember - Automatycznie przekieruj do firstObject
- 22. Dodaj trasę do Ember Addon
- 23. Ember Route.transitionTo usunięte
- 24. Jak uzyskać dostęp do właściwości "resolve" stanu root-u-routera z $ stateChangeStart?
- 25. mysql_field_name do nowego mysqli
- 26. Ember: obniżenie ember z instalacją altanki
- 27. Dynamicznie dodawaj/usuwaj skierowane do routera aktor
- 28. Rozstrzyganie routera nie zostanie wprowadzone do kontrolera.
- 29. Reaktor routera: zapobieganie nawigacji do celu trasy
- 30. Migracja z ngRoute do routera ui
I od trasy jest ona dostępna jako 'get ('ten, routera)' – Pavel