Я работаю с Angular 6, и у меня есть следующий компонент
MainComponent.ts, который имеет этот код на ngOnInit:
ngOnInit() {
console.log('OnInit');
this.route.params.subscribe(params => {
if (params['id'] != null) {
this.id= params['id']
}
});
}
, а затем на MainComponent.HTML
<DataComponent [id]="id"></DataComponent>
<TableComponent [id]="id"></TableComponent>
<FieldComponent [id]="id"></FieldComponent>
Маршрут: http://localhost:4200/Data/77
Все работает отлично, пока мне не понадобится клонировать или изменить идентификатор, поэтому мне нужно, чтобы MainComponent обновил все идентификаторы .. Я сделал следующий код:
this.router.navigate(['/Data', result.id_cloned_data]);
Редактировать: Маршруты
const appRoutes: Routes = [
{
path: 'Formula/:idFormula',
component: FormulaMainComponent,
pathMatch: 'full'
},
{ path: 'Formula', component: FormulaMainComponent, pathMatch: 'full' },
{ path: '', component: FormulaMainComponent, pathMatch: 'full' }
];
URL-адрес изменяется, например: http://localhost:4200/Data/399, но MainComponent не обновляется. Я сделал EventEmitter, передав новый идентификатор в MainComponent, но он все еще не работает, и я уже попробовал AppRoutes наSameUrlNavigation: 'reload'.
Что я делаю не так? Разве это не нужно переопределять, чтобы каждый компонент вызывал свой Get from API?