我可以从 `canActivate: AuthGuard` 中读取路由参数的值吗?
Can I read route parameter's value from the `canActivate: AuthGuard`?
{
path: ':l/bla/bla/bla', component: ..., canActivate: [AuthGuard]
}
然后AuthGuard
的构造函数:
constructor(
private readonly router: Router,
private readonly activedRoute: ActivatedRoute) { }
... 但是 .params
和 .snapshot.params
都是空的,无法从那里读取 :l
参数值("language" 的缩写)。
所以问题:如果我的 dynamic :l
就位,我如何才能在未经授权的情况下重定向到另一个页面?
P.S。 data
不起作用(是吗?),因为它可以用于编译时已知数据而不是动态数据。
canActivate(activatedRouteSnapshot: ActivatedRouteSnapshot) { ... }
解决了问题:方法参数应该优先于构造函数注入。
{
path: ':l/bla/bla/bla', component: ..., canActivate: [AuthGuard]
}
然后AuthGuard
的构造函数:
constructor(
private readonly router: Router,
private readonly activedRoute: ActivatedRoute) { }
... 但是 .params
和 .snapshot.params
都是空的,无法从那里读取 :l
参数值("language" 的缩写)。
所以问题:如果我的 dynamic :l
就位,我如何才能在未经授权的情况下重定向到另一个页面?
P.S。 data
不起作用(是吗?),因为它可以用于编译时已知数据而不是动态数据。
canActivate(activatedRouteSnapshot: ActivatedRouteSnapshot) { ... }
解决了问题:方法参数应该优先于构造函数注入。