我在app.routing.ts的主页上有条不紊地重定向:
{ path: '', redirectTo: '/dashboard', pathMatch: 'full', canActivate: [HomePageGuard] }
我的警卫看起来像这样:
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
if(condition){
return true;
} else {
this.router.navigate(['/info']);
return false;
}
}
现在,对于其他所有路径,这都很有效。但是对于
{ path: '', redirectTo: '/dashboard', pathMatch: 'full'}
守卫似乎什么都不做,无论守卫如何回归,它总是会重定向到/仪表板。 我不想把警卫放到/仪表板路径中,因为这条路径应该仍然可供所有人使用,而不是作为起始页......
非常感谢任何帮助
编辑: 我现在如何解决它:
{ path: '', component: HomePageComponent, canActivate: [HomePageGuard] }
(请注意,HomePageComponent为空,因为无论如何都会在[HomePageGuard]中重定向)
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
if(condition){
this.router.navigate(['/dashboard']);
return false;
} else {
this.router.navigate(['/start']);
return false;
}
}