我的目标是:当点击链接'auth/login/:tokenKey'
时,将触发一种方法,然后重定向A或B组件。对于此链接'auth/login/:tokenKey'
,不需要组件。只能是ts文件中的方法。
该怎么做?
canActivate(route: ActivatedRouteSnapshot) {
localStorage.setItem('token_key', route.params.tokenKey);
return true;
}
我不需要为'auth/login/:tokenKey'
路径使用组件。在该路径中,将运行一个进程,然后将其重定向到索引页。
但是当我使用'redirectTo'指令时,Guard无法正常工作。
当我与组件一起使用时,Guard可以工作。
如何使用没有组件的防护?
const routes: Routes = [
{ path: '', component: IndexComponent },
{ path: 'auth/login', component: LoginComponent },
{ path: 'auth/login/:tokenKey',
canActivate: [GetTokenKeyGuard],
redirectTo: '' }, //........................ Guard doesnt work.
{ path: 'auth/login/:tokenKey',
canActivate: [GetTokenKeyGuard],
component: LoginComponent }, //............. Guard works.
];
答案 0 :(得分:0)
您可以在下面的路径中使用
const routes: Routes = [
{ path: '', component: IndexComponent },
{ path: 'auth/login', component: LoginComponent },
{ path: 'auth/login/:tokenKey',
canActivate: [GetTokenKeyGuard],
children: [] }
];