Je me suis récemment coincé avec des gardes angulaires. CanActive s'exécute une seule fois lorsque la page est chargée et ne s'exécute pas lors du changement d'itinéraire dans l'itinéraire protégé. Je pense que cela a été changé parce qu'il fonctionnait à chaque changement. D'après ce que j'ai lu dans les forums, je devrais utiliser CanActivateChild. Le problème est que notre application se compose de plusieurs modules, qui ont plusieurs descendants d'itinéraire et lorsque j'utilise CanActivateChild dans le module racine, il est appelé plusieurs fois lors du changement d'itinéraire. Je trouve qu'il est idiot d'assigner une garde à chaque enfant parce que, pour AppModule, ces modules enfants chargés paresseusement ne devraient être que des 'boîtes noires' et je voulais définir que tous ces modules devraient être gardés.Angulaire: Exécuter canActivate à chaque changement de route
export const routes: Routes = [
{
path: '404',
component: NotFoundComponent
},
{
path: '',
canActivate: [AuthGuard],
component: FullLayoutComponent,
data: {
title: 'Home'
},
children: [
{
path: 'administration',
loadChildren: './administration/administration.module#AdministrationModule'
},
{
path: 'settings',
loadChildren: './settings/settings.module#SettingsModule'
}
]
},
{
path: '',
loadChildren: './account/account.module#AccountModule'
},
{
path: '**',
redirectTo: '404'
}
];
Y at-il une solution à cela? Ou trouvez-vous cela comme «pas un problème» en matière de sécurité?
Merci à tous.
Oui, j'ai trouvé exactement la même chose. "Intentionnellement". Je trouve votre réponse comme la meilleure solution jusqu'à présent, alors merci! –