Как перезагрузить представление после router.navigate в Angular 4?
У меня есть функция перехода в магазин, которая управляется компонентом заголовка и отображает панель мониторинга для этого места.
В этом компоненте заголовка я перехожу к маршруту на приборной панели, даже если я уже на этом маршруте.
this.router.navigate(['/venues', this.currentVenue._id, 'dashboard']);
Но он не запускает хук ngOnInit снова, поэтому мое представление не перезагружается.
Какой правильный обходной путь для такого случая?
1 ответ
Вам нужно перезагрузить вид? Или просто получить некоторые данные?
Если вам нужно только повторно получить данные на основе параметра маршрутизации, вы можете сделать это:
ngOnInit(): void {
this.route.params.subscribe(
params => {
const id = +params['id'];
this.getMovie(id); // <- Or whatever you need to do here
}
);
}
В ngOnInit этот код подписывается на параметры маршрута. Таким образом, каждый раз, когда параметры изменяются, даже если представление не изменяется / перезагружается, изменение будет воспринято как часть подписки, и будет выполнен соответствующий обратный вызов.