Pracuję nad aplikacją, która musi skonfigurować trasy na podstawie zewnętrznego źródła danych. Cykl życia aplikacji wygląda następująco:Dynamiczne wyznaczanie trasy na podstawie danych zewnętrznych
- NG2 inits z App
- App zawiera nagłówek, Router-wylot, i stopka
- trasa domyślna jest skonfigurowana do homeComponent
- homeComponent ma categoriesListComponent
- categoriesListComponent wywołuje metodę get z kategoriiService
- categoriesService zwraca listę kategorii z api
- categoriesComponent renderuje listę i wstrzykuje nowe trasy dla każdej kategorii z powrotem do aplikacji za pośrednictwem routesConfigurator
Jest rzeczywiście inna warstwa abstrakcji z routesService jednak, że nie jest potrzebny do tego przykładu
że część działa, ponieważ zaczęliśmy na stronie głównej, api wywoływano i tworzono routerConfigs dla każdej kategorii. Kiedy użytkownik kliknie na kategorię, trasa jest już skonfigurowana z poprawnymi metadanymi kategoriiComponent + i są wyświetlane prawidłowe informacje.
Jednakże, jeśli strona z konkretną kategorią jest dostępna bezpośrednio ng2 nie ma jeszcze routerConfig dla tej trasy, ponieważ połączenie api nie zwróciło nic, nie mówiąc już o zwolnieniu. Ng2 po prostu renderuje podstawową aplikację z nagłówkiem, stopką i pustym gniazdem routera.
Jedyne rozwiązanie, jakie mogę wymyślić, to dość "hacky". Zachowaj zbuforowany plik json na serwerze aplikacji i załaduj go do początkowego html, a następnie wprowadź go do usługi na ng2 bootstrap/init. W ten sposób trasy są konfigurowane przed ng2 nawet bytami renderującymi stronę.
Proszę o wszelkie inne możliwe sugestie, może ktoś z nieco większym doświadczeniem ng2, że mogę dzwonić. Może to już rozwiązano i po prostu nie udoskonaliłem mojego google-fu wystarczająco.
Z góry dziękuję.
Przepraszamy, ale nie mogłem zauważyć żadnego pytania w Twoich materiałach ?! – AngJobs
'Pytam o wszelkie inne możliwe sugestie ...' –
OK, to po prostu zbyt wiele do przeczytania, po prostu szybko przeskanowałem go pod kątem jakichkolwiek znaków zapytania, nie znalazłem żadnego. – AngJobs