ActivatedRoute.snapshot.paramMap не работает - PullRequest
1 голос
/ 25 марта 2020

Я пытаюсь получить параметры маршрута при запуске / начальном маршруте. Но это не работает.

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]
})

Тогда я обслуживать мое приложение и go до:

http://localhost: 4200/123

Но мой app.component.ts всего лишь console.log null null. Почему это не работает? Я чувствую, что у меня все правильно. Вот Angular Blitz для работы: https://stackblitz.com/edit/angular-wnrrkd

1 Ответ

1 голос
/ 25 марта 2020

вы написали код в app.component.ts, который является компонентом root, но :token определен для дочернего компонента, поэтому я переместил код в дочерний компонент, еще одна вещь, на которую следует обратить внимание: в app.component.html у вас должна быть розетка маршрутизатора, которая будет отображать дочерний компонент, только тогда токен будет виден, см. пример ниже.

Пример Stackblitz

...