У меня есть компонент PersonTabsComponent , который расширяет абстрактный компонент PersonParentComponent (содержит модель человека), где я использую некоторую информацию из модели. Внутри этого компонента я также определил другие компоненты для адреса и другой информации, которые также расширяют тот же PersonParentComponent .
То, что я хочу сделать, это после обновления модели персонажа, перенаправляющей на тот же маршрут, и просмотра изменений во всех компонентах. Данные вводятся во все компоненты с использованием резольвера PersonResolver и activRoute .
export abstract class PersonParentComponent {
person: Person= new ..();
personRegister: Person= new ..();;
protected constructor(private activatedRoute: ActivatedRoute,
private translate: TranslateService) {
this.activatedRoute.data.subscribe(data => {
const persons = data['person'];
this.person = persons[0];
this.personRegister = persons[1];
});
}
...
}
Чтобы иметь возможность перенаправить на тот же маршрут и заставить распознаватель вызывать данные, для которых я определил маршрут следующим образом ( runGuardsAndResolvers: 'always' ):
{
path: 'personen/:personId',
component: PersonTabsComponent,
resolve: {person: PersonVeResolver},
runGuardsAndResolvers: 'always'
}
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
Чем после выполнения обновления я перенаправляю на тот же маршрут, используя:
this.router.onSameUrlNavigation = 'reload';
this.router.navigate(['personen/'.concat(String(id))]);
Проблема, с которой я столкнулся, заключается в том, что данные обновляются только в компоненте PersonTabsComponent , а также в подкомпонентах, содержащихся внутри него, даже если выполняется метод разрешения для распознавателя.
Знаете ли вы, что я что-то упустил или как заставить подкомпоненты также перезагрузить данные?
PS: я не хочу делать противное решение window.location.reload (). :)
Спасибо!