нужно добавить новый formControl в formArray, используя метод insert ()
<form [formGroup]="traveller">
<div formArrayName="travellerInfo" *ngFor="let info of traveller.controls['travellerInfo']['controls'];let i=index" >
<p>Adult{{i+1}}</p>
<div [formGroupName]="i">
<input formControlName="name1" >
<input formControlName="name2">
</div>
</div>
</form>
здесь мне нужно добавить поле возраста только для детской строки
public traveller=new FormGroup({
travellerInfo:this.fb.array([this.addTraveller()])
});
maxCount=[
"a",
"b",
"c"
];
maxpaxCount=3;
maxchildCount=2;
`
``
ngOnInit() {
this.pushTraveller();
}
addTraveller() {
return this.fb.group({
name1: new FormControl(''),
name2: new FormControl(''),
age: new FormControl('')
})
}
pushTraveller() {
for (let i = 0; i < this.maxpaxCount; i++) {
(this.traveller.get(`travellerInfo`) as FormArray).push(this.addTraveller());
(i + 1 == this.maxpaxCount) ? this.childView = true: this.childView = false;
if (this.childView == true) {
for (let j = 0; j < this.maxchildCount; j++) {
(this.traveller.get(`travellerInfo`) as FormArray).push(this.addTraveller());
(this.traveller.get(`travellerInfo`) as FormArray).insert(0, new FormControl());
}
}
}
}
строка для взрослых содержит поля name1 и name2, но дочерняя строка содержит поля name1, name2 и age в одной формеArray