我正在尝试访问路由器防护中的:id
路由参数,但出于某种原因,它始终返回空Object{}
。
最初我不知道如何做到这一点,所以我使用this question指出了我正确的方向,但它没有产生任何结果。这与之间的关键区别在于我的问题出在guard
。
这是我的路线声明app-routing.module
:
const dashboardRoutes: Routes = [
{
path: "dashboard/:id",
component: dashboard.DashboardComponent,
canActivate: [guard.LoggedInGuard],
children: [
{
path: "",
redirectTo: "home",
pathMatch: "full"
},
...
这是我的警卫existsInDatabase.guard
(我同时尝试了params
和queryParams
}:
constructor(
private router: Router,
private activatedRoute: ActivatedRoute
) { }
canActivate() {
console.log(this.activatedRoute.params);
this.activatedRoute.params.subscribe(param=> {
console.log(param); // logs empty Object{}
console.log(param['id']); // logs undefined
});
this.activatedRoute.queryParams.subscribe(param=> {
console.log(param); // logs empty Object{}
console.log(param['id']); // logs undefined
});
return true;
}
当我尝试从
导航时出现问题
http://localhost:4200/dashboard/136364285
为:
http://localhost:4200/dashboard/136364285/dock/1654321
如何获得136364285
?