@igor456727

Как в Angular 4 поймать событие при переходе по routerLink?

Всем привет! Есть в приложении 2 компонента home & page, роутинг выглядит так
{
path : '',
component: HomeComponent
},
{
path : 'page',
component: PageComponent
},
{
path : 'page/:code',
component: PageComponent

},


Далее на любой странице у меня есть ссылки вида

< a routerLink="/page/{{ item_child.code }}" >{{ item_child.title }} a>


Если я нахожусь на странице компонента home то переход работает правильно - данные подтягиваются на странице компонента page, но если я сделал переход и текущий юрл = /page/code, то при клике по такому же юрл данные почему то не меняются, почему ? не запускается конструктор компонента page.

И еще подводный камень, так как я вывожу ссылке в другом компоненте ( назовем его компонент menu, то даже при вызове из него функции изменения к примеру тайтла компонента page, то же не меняет ).
Все это наблюдается при кликах непосредственно на странице /page/code.
  • Вопрос задан
  • 1966 просмотров
Решения вопроса 1
@AlexRudkowskij
Студент
Можете привести код которым вы пробуете получить code в компоненте PageComponent?

В текущем проекте получаю данные следующим образом:
constructor(private activatedRoute: ActivatedRoute) {}

Далее в ngOnInit:

this.activatedRouter.params.subscribe(params => { ... })
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@igor456727 Автор вопроса
Проблема выявилась в том, что если компонент меню ( с ссылками ) выводится в компоненте page = то работает хорошо. Если выводится в основном компоненте app.components.html

<div id="wrapper">

    <router-outlet></router-outlet>

    <app-menu></app-menu>
</div>

то наблюдается ошибка описанная выше, дело оказывается в этом, но как быть если хочется сохранить структуру и выводить меню в app.components.html и сделать переходы рабочими ?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы