ActivatedRoute.snapshot.paramMap不起作用

问题描述 投票:1回答:1

我试图在启动/初始路由上获取路由参数。但它不起作用。

app.component.ts

  import { ActivatedRoute } from '@angular/router';
  ...

  constructor(
    private activatedroute: ActivatedRoute
  ) {}

  ngOnInit() {
    console.log(this.activatedroute.snapshot.paramMap.get('token'));

    this.activatedroute.paramMap.subscribe( paramMap => {
      console.log(paramMap.get('token'));
    });
  }

app.module.ts(不仅包括此内容)

import { Routes, RouterModule } from '@angular/router';

const routes: Routes = [
  { path: ':token', component: HelloComponent },
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})

然后我提供我的应用程序并转到:

http://localhost:4200/123

但是我的app.component.ts只是console.log的null null。为什么这不起作用?我觉得我一切都正确。这是可以使用的Angular Blitz:https://stackblitz.com/edit/angular-wnrrkd

angular angular2-routing angular-activatedroute
1个回答
0
投票

您已经在作为根组件的app.component.ts中编写了代码,但是:token是为子组件定义的,所以我将代码移到了子组件中,还有一点要注意的是,在app.component.html中],您需要有一个路由器出口,该路由器出口将显示子组件,然后令牌才可见,请参阅以下示例。

[Stackblitz example] >>

© www.soinside.com 2019 - 2024. All rights reserved.