在一种情况下,我有一个懒惰加载的子路由要有条件地显示:
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 组件。
为此,我添加了一个守卫,
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;
}
但是,这导致此防护措施被反复调用,并且我的应用程序挂起。我该怎么解决?