我可以从canActivate:AuthGuard中读取路由参数的值吗?

时间:2018-09-22 21:57:08

标签: angular angular-routing angular-router-guards angular-route-guards

{
    path: ':l/bla/bla/bla', component: ..., canActivate: [AuthGuard]
}

然后是AuthGuard的构造函数:

constructor(
    private readonly router: Router,
    private readonly activedRoute: ActivatedRoute) { }

...但是.params.snapshot.params都是空的,并且无法从那里读取:l参数的值(“语言”缩写)。

这样的问题:如果我的动态 :l到位,如何在未经授权的情况下重定向到另一个页面?


P.S。 data不起作用(是吗?),因为对于编译时已知的数据而不是动态数据,这是可以的。

1 个答案:

答案 0 :(得分:0)

canActivate(activatedRouteSnapshot: ActivatedRouteSnapshot) { ... }

解决了这个问题:方法参数应优先于构造函数注入。