Вы не применяете formControlName к самому элементу управления, вы устанавливаете значение текстовой области с помощью атрибута [value]
. Таким образом, он обновляется в первый раз, но затем никогда не получает обновления через форму.
Исправление состоит в том, чтобы передать имя элемента управления формы дочернему элементу и применить его к элементу управления. Если вы делаете это, вам также необходимо применить директиву [formGroup]
в том же компоненте, что и имя элемента управления формы, так что вам нужно будет передать это тоже.
Оригинальная версия
child. html
<div>
<textarea [value]="value">
</textarea>
</div>
parent. html
<div [formGroup]="form">
<child formControlName="details" [value]="value">
</child>
</div>
Обновленная версия
child. html
<div [formGroup]"myFormGroup">
<textarea [formControlName]="myFormControlName">
</textarea>
</div>
child.ts
@Input() myFormControlName: string;
@Input() myFormGroup: FormGroup;
parent. html
<div>
<child [myFormGroup]="form" myFormControlName="details">
</child>
</div>
Я использовал неоднозначные имена входных свойств из директивы формы имен. Очевидно, вы захотите использовать чуть более разумные имена.
Разбитый стек стека: https://stackblitz.com/edit/demo-nested-forms-wplzbq
Я сломал обработку изменений в процессе разветвления вашего стекаблица. Но самое главное, что значения обновляются.