Я думаю, проблема в том, что вы меняете ссылки .
this.sizeForm = this.fb.group({
sizesArray: this.sizesArray
});
На данный момент sizeArray
указывает на значение, на которое ссылается this.sizesArray
, что составляет this.fb.array([])
. Затем при следующем обратном вызове вашего подписчика вы меняете ссылки. Это значение также «захватывается» formControlName='sizesArray'
, что означает, что
<div *ngFor="let size of sizesArray.controls; let i = index;" [formGroupName]="i">
создаст количество FormGroup
экземпляров, которые являются дочерними элементами контейнера sizesArray
, который пуст.
Теперь this.sizesArray
(по которому вы перебираете шаблон) указывает на что-то еще, а именно: this.fb.array([...sizes])
.
Итак, в основном происходит то, что sizesArray
( дочерний элемент sizeForm
) указывает на пустое FormArray
, а this.sizesArray
указывает на непустое FormArray
.
То, что вы могли бы сделать в этом случае, было бы следующим:
.subscribe(sizes => {
this.sizeForm.setControl('sizeArray', this.fb.array(sizes))
})