3 votes

Angular 2 Obtenir les routes enfant de Lazy Load Routes

J'ai un module App avec des routes définies pour le chargement paresseux :

export const routes: Routes = [
    { path: '', pathMatch: 'full', loadChildren: 'app/dashboard/dashboard.module#DashboardModule', component: CoreComponent, data: {showInMenu: false, role: 'ROLE_USER'}},
    { path: 'admin', loadChildren: 'app/admin/admin.module#AdminModule', component: CoreComponent, data: {showInMenu: true, role: 'ROLE_ADMIN'}},
];

Dans le module Admin, j'ai défini les routes des admins :

export const adminRoutes: Routes = [
    { path: '', pathMatch: 'full', component: AdminDashboardComponent},
    { path: 'areas', component: ManageAreasComponent}
];

Je voudrais savoir s'il est possible d'obtenir les routes d'admin ('' et 'areas') avant de charger le module ? Ce que je voudrais réaliser est le suivant : Je voudrais que les modules soient chargés paresseusement, mais lorsque vous ouvrez l'application, je voudrais montrer le menu principal de l'application qui devrait également afficher les routes de navigation de deuxième niveau (pas seulement le lien vers 'admin' mais aussi vers 'admin/areas'. Tous les utilisateurs n'auront pas accès à toutes les routes ... )

0voto

Vous pouvez utiliser la garde CanActivate, importer les routes enfant et les décharger dans le routeConfig et appeler la méthode resetConfig.

Vous pouvez trouver plus de détails dans ce lien https://github.com/angular/angular/issues/11437

J'espère que cela pourra vous aider.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X