У меня есть 2 компонента и 1 сервис для создания формы. Я отправляю форму управления второму компоненту из первого и связываю изменение формы с сервисом в первом. Когда я удаляю управление в форме через сервис, форма хорошо обновляется в первом компоненте, но не во втором. См. Код:
Компонент 1 .ts
export class AppFormComponent implements OnInit, OnChanges {
form;
frontForm: FormGroup = new FormGroup({});
constructor(
private formService: FormService,
) {}
ngOnInit() {
// GET FRONT FORM
this.formService.getForm(this.form.form_id)
.subscribe(form => {
console.warn('Component 1 UPDATE');
this.frontForm = form;
});
}
}
ngOnChanges(): void {
console.warn(this.frontForm);
}
}
Компонент 1. html
<app-section [tempForm]="frontForm.controls['form.' + form.form_id]"></app-section>
Компонент 2 .ts
export class AppSectionComponent implements OnInit, OnChanges {
@Input() tempForm: FormArray;
constructor() {}
ngOnInit() {}
ngOnChanges(): void {
console.warn('COMPONENT 2 CHANGE');
}
}
Когда я удаляю управление в сервисе, у меня есть «ОБНОВЛЕНИЕ компонента 1» из компонента 1, но не «ИЗМЕНЕНИЕ КОМПОНЕНТА 2». Если я изменю Компонент 1 html с этим входом:
<app-section [tempForm]="frontForm"></app-section>
, я получаю "ИЗМЕНЕНИЕ КОМПОНЕНТА 2". Почему существует разница между frontForm и frontForm.controls ['form.' + form.form_id]?
Спасибо