В моем приложении Angular есть компонент, данные которого зависят от параметра маршрута.Когда страница открывается в первый раз, данные загружаются правильно.Когда я перехожу на другую страницу, но остаюсь на том же компоненте (поэтому меняются только один параметр маршрута), новые данные не загружаются.
параметры маршрута обновляются, и все данные, на которые подписывается с асинхронностьютруба загружена правильно.однако есть одна часть данных, которая требует дополнительной обработки.на эту наблюдаемую подписывается в компоненте.это данные с данными, которые не загружаются снова.
В приведенном ниже коде встроенная наблюдаемая подписка paramMap продолжает отслеживать изменения параметров маршрута и запускать обратный вызов.вторая наблюдаемая не делает.Я предполагаю, что это потому, что вторая наблюдаемая завершена и фактически заменена новой, на которую никогда не подписываются (в обратном вызове кулака).
как лучше всего решить эту проблему, чтобы также получить данные из второйobservable?
Единственное, что, кажется, заставляет его работать, - это перенести эту вторую подписку на обратный вызов первой.но это не выглядит для меня очень чистым кодом, и я не уверен, что произойдет, если по какой-то причине наблюдаемое не завершится к тому времени, когда оно будет заменено новым.
ngOnInit(): void {
this.route.parent.paramMap.subscribe((paramMap: ParamMap) => {
this.id = paramMap.get('id');
this.observable= this.service.getSomething(this.id);
}
this.observable.subscribe(
// callback that handles the processing of the data
)
}