как динамически добавить элемент управления вводом в Formarray - PullRequest
0 голосов
/ 20 февраля 2020

нужно добавить новый 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...