У меня есть сценарий, в котором у меня есть лениво загруженные дочерние маршруты, которые должны отображаться условно:
const routes: Routes = [
{
path: '',
component: ParentComponent,
canActivate: [ParentGuard],
children: [
{
path: 'child1', loadChildren:'./child1/child1.module#Child1Module'
},
{
path: 'child2', loadChildren:'./child2/child2.module#Child2Module'
},
]
}
];
Я перехожу на ParentComponent
с некоторой страницы, например:
this.router.navigate('app/parent');
Теперьпроблема в том, что я должен показать child1 и child2 компоненты, основанные на каком-то условии.
Для этого я добавил Guard,
canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot){
if (this.isAdmin) {
this.router.navigate(['app/parent/child1']);
return false;
} else {
this.router.navigate(['app/parent/child2']);
return false;
}
return true;
}
Однако, это приводит к тому, что этот сторож вызывается повторно, и мое приложение зависает.Что я могу сделать, чтобы это исправить?