Mam aplikację Angular, która już korzysta z routera interfejsu użytkownika. Obecnie używa widoków zagnieżdżonych, jak większość ludzi używa notacji kropkowej, tj. parent.childState
.
Jednak teraz jest oczywiste, że niektóre części tej aplikacji muszą być ponownie użyte w innym miejscu, nazwijmy to Module A
Ten moduł jest kartowany i obecnie ma stan powiązany z każdą kartą. Obecnie, podobnie jak większość aplikacji routera interfejsu użytkownika, trasy są konfigurowane podczas fazy konfiguracji aplikacji.
Z tym nowym komponentem podoba mi się rejestrowanie własnych tras, a trasy te są trasami podrzędnymi dowolnego widoku nadrzędnego, w którym się znajdują.
czy to możliwe?
Odpowiedzi:
1 dla odpowiedzi № 1Możesz wykonać następujące czynności:
Zadeklaruj dostawcę w swoim Moduł A który będzie mógł zarejestrować wszystkie komponentyaplikacji, w której chcesz wstawić moduł. Jednym z parametrów będzie oczywiście prefiks stanu. Ten dostawca zadzwoni do $ stateProvider wewnętrznie, albo podczas wywoływania funkcji dostawcy, albo podczas tworzenia instancji usługi pasującej do dostawcy ($ get).
Jeśli wybierzesz funkcję $ get, będziesz musiałdodaj angular.run (), aby wymusić utworzenie instancji usługi wynikającej z $ get. W przeciwnym razie $ get zostanie wywołany później, a stany nie zostaną zamapowane, co spowoduje $ stateNotFound. Jest to przydatne, jeśli chcesz mieć możliwość przeciążenia niektórych konfiguracji przed wywołaniem $ stateProvider, jeśli nie potrzebujesz, nie używaj $ stateProvider w funkcji $ get.
Więc teraz wszystko, co musisz zrobić w module innym, to polegać na module A i korzystać z tego dostawcy.