ActivatedRoute.snapshot.paramMap 不起作用

Fra*_*ank 6 angular2-routing angular angular-activatedroute

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

应用程序组件.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'));
    });
  }
Run Code Online (Sandbox Code Playgroud)

app.module.ts(不过不仅仅包括这个)

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

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

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
Run Code Online (Sandbox Code Playgroud)

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

http://本地主机:4200/123

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

Nar*_*ali 5

app.component.ts你已经编写了根组件的代码,但是:token是为子组件定义的,所以我已将代码移至子组件,还要注意的一件事是,app.component.html你需要有路由器出口来显示子组件,只有这样令牌才可见,请参考下面的示例。

Stackblitz example