主页的Angular 2条件重定向

时间:2017-08-19 14:58:49

标签: angular typescript redirect

我在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;
}
}

1 个答案:

答案 0 :(得分:0)

here所述,当指定redirect时,防护根本不会被调用。