ActivatedRoute.snapshot.paramMap 不工作

ActivatedRoute.snapshot.paramMap not working

我试图在 startup/initial 路线上获取路线参数。但它不起作用。

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 闪电战,可以使用:https://stackblitz.com/edit/angular-wnrrkd

你把代码写在了app.component.ts里面,它是根组件,但是:token是为子组件定义的,所以我把代码移到子组件里了,还有一点需要注意的是,在 app.component.html 中,您需要有显示子组件的路由器插座,只有这样才能看到令牌,请参考下面的示例。

Stackblitz example

试试这个:

this.router.parseUrl(this.router.url).queryParams['coupon']