Задать вопрос
@Fires

Как в angular2 осуществлять переход внутри одного и того же компонента?

Есть компонент Profile - карточка пользователя. Запрос информации о пользователе лежит в ngOnInit(), т.е. вызывается только, когда срабатывает функция ngOnInit() из интерфейса OnInit.

Проблема:
Мы находимся на карточке одного из пользователей. На этой карточке есть ссылки на карточки двух других пользователей: /profile1 и /profile2. При переходе по любой из них url меняется, но запросы из ngOnInit() не происходят.
Как быть?

Пробовал другие интерфейсы жизненного цикла, но из них срабатывают только ..Changes. Причем срабатывают на каждый чих, что совершенно излишне.

Сейчас прикручен костыль: по клику на ссылку пользователя вручную вызывать функцию обновления данных на карточке. Это решает проблему, но только если мы находимся в компоненте Profile, с других же компонентов такой костыль превращается в гигантскийСуперМегаКостыль.
  • Вопрос задан
  • 454 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 2
Sergamers
@Sergamers
front-end
Так ты ж можешь с в onChange проверять изменился ли пользователь. Если да, то запускай init занова, только перенеси данные в новый метод.
Ответ написан
Комментировать
@kgorozhanov
Front-End Developer
Обычно это выглядит так:
ngOnOnit() {
    this.route.params.subscribe(({ id }) => this.loadProfile(id));
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы