Как получить значение параметра в компоненте Common в Angular 6

У меня есть HeaderComponent, который является общим для всех страниц и появляется на каждой странице. Итак, я создал отдельный компонент для заголовка и добавил в app.component.html с помощью селектора. Я создал две дочерние страницы "Дом" и "Второй" и направил его с помощью <router-outlet> в app.component.ts

маршрут

const routes: Routes = [{
  path : "", component : HomeViewComponent
},{
  path : "second/:id/:category", component : SecondComponent
}];

Я передаю параметры ID и категории во вторых компонентах.

в HeaderComponent я хочу получить этот параметр при изменении маршрута, поэтому я сделал следующий код в header.component.ts

constructor(private router: Router, private route : ActivatedRoute) { }

  ngOnInit() {
    this.router.events.subscribe((val) => {
      // see also 
      this.route.params.subscribe(params => {
        console.log(params);
      });
    });
  }

Но я не могу получить параметры. Я получаю {} пустые параметры в консоли, к которой я прикрепил ссылку на стек.

https://stackblitz.com/edit/hardik?file=app%2Fapp.routing.module.ts

ОБНОВЛЕНИЕ: этот компонент заголовка есть на всех страницах, а не только во втором компоненте. поэтому я не могу поместить его только во второй компонент.

1 ответ

Использовать paramMap

this.router.events.subscribe((val) => {
  // see also 
    let id = this.route.snapshot.paramMap["id"]; 
    console.log(id)

});
Другие вопросы по тегам