"разделяй и властвуй". Сделайте функции, которые получили данные и возвращают FormGroup
getChackboxesGroup(data:any):FormGroup
{
data=data || {
checkboxName:'',
displayName": ''
}
return new FormGroup({
checkboxName:new FormControl(data.checkboxName),
displayName:new FormControl(data.displayName),
})
}
getDataGroup(data:any):FormGroup
{
data=data || { name: '',
description: '',
chackboxes:null
}
return new FormGroup({
name:new FormControl(data.name),
description:new FormControl(data.description),
chackboxes:data.chackboxes?
new FormArray(data.chackboxes.map(x=>this.getChackboxesGroup(x)):
new FormArray([])
})
}
Ну, вам нужно только после получения данных
this.formArray=new FormArray(this.data.map(x=>this.getDataGroup(x))
Далее, если вы хотите добавить новый пустой элемент, который вам нужен только
this.formArray.push(this.getDataGroup(null))
//or if you want to add a new checkboxes to the first element of the array
(this.formArray.at(0).get('chackboxes') as FormArray)
.push(this.getChackboxesGroup(null)