Klasa RouteConfig, której można użyć do dekoracji komponentu (@RouteConfig) z funkcjami routingu, ma określone definicje tras zdefiniowane dla tego komponentu. Teraz catch ma mieć te definicje tras wstrzykiwane w czasie wykonywania (dynamicznie).Implementacja dynamicznego routingu w Angular2 (maszynopis)
Powód jest następujący: załóżmy, że mam aplikację, w której muszę wyświetlić (UI) i zdefiniować (udekorować) "n" liczbę tras, z których każda odpowiada kontu, dla którego aplikacja jest załadowana, a co za tym idzie, prawom które są powiązane z tym konkretnym kontem. Zatem posiadanie definicji tras zdefiniowanych w dekoratorze @RouteConfig dla komponentu nie ma żadnego sensu.
Moje podejście polega na wykonywaniu zgłoszenia serwisowego za każdym razem, gdy nowe konto jest ładowane. Pobierz tylko powiązane trasy i wstrzyknij je w czasie wykonywania, aby przejść do innych odpowiednich składników odpowiadających każdej trasie wyświetlanej w interfejsie użytkownika dla tego konta.
import { Summary } from './components/summary';
@RouteConfig([
/*
Let's say we need a seller dashboard to be displayed...
*/
//{ path: 'SellerDashboard', component: SellerDashboard }
{ path: '/', component: Summary }
])
class App {
contactInfo: ContactInfoModel;
public App(dataService: DataService) {
this.model = dataService.getContactInfo();
}
}
W powyższym fragmencie kodu, powiedzmy, życzę, aby załadować pulpit sprzedający odpowiadającą koncie sprzedającego looged w mojej aplikacji. Teraz wygrało; nie ma sensu wyświetlać pulpitu nawigacyjnego Point of Sales ani niczego, co nie ma związku ze sprzedawcą (w naszym przypadku panel zapasów sprzedawcy jest odpowiedni dla sprzedawcy).
W istocie wstrzykiwanie tylko tych tras, które są wymagane zamiast konfigurowania wszystkich tras w tym samym miejscu.
EDIT 1:
To pytanie ma prostą sprawę użycie lub scenariusz niż dwóch egzemplarzach oznaczonego na tym stanowisku (który został poproszony później). Odpowiedzi wymienione w tym artykule mają prostsze podejście i są również znacznie bardziej intuicyjne.
Można to zrobić, ale nie jest łatwym rozwiązaniem. Spójrz na [ten artykuł] (http://blog.mgechev.com/2015/12/30/angular2-router-dynamic-route-config-definition-creation/), mam nadzieję, że pomoże ... – Sasxa
@Sasxa bardzo dziękuję za pomoc. Próbowałem tego z pewnymi modyfikacjami służącymi moim potrzebom. Świetny artykuł! działa dla mnie jak urok. – darkdefender27