В вашем коде есть некоторые ошибки.
Первая из них:
<div class="form-group" formArrayName="applicant">
<div *ngFor="let appAddr of applicant.controls; let i=index">
<div class="d-flex">
<label class="control-label required-field col-6 mr-1" for="applicant.{{i+1}}">Applicant Address.{{i+1}} </label>
<button type="button" class="btn btn-danger" (click)="addCol('applicant')">+</button>
</div>
<div class="form-inline">
<input type="text" class="form-control col-10" [formControlName]="i">
<button type="button" class="btn btn-danger" *ngIf="i > 0" (click)="delCol('applicant',i)">-</button>
</div>
</div>
</div>
Это значение formControlName в ваших входных данных. Вы установили 'i', но я толькоиндекс, вы должны были установить его на appAddr
После этого, возможно, это должно сработать .. Мне не удалось добавить его в стекаблиц, так что попробуйте это!
РЕДАКТИРОВАТЬ: так что мне удалось добавить его на stackblitz!Поэтому, чтобы заставить его работать, вам нужно добавить в свой FormArray новую группу FormGroup с пустым элементом управления:
applicant: this.formBuilder.array(
[this.formBuilder.group({
app: this.formBuilder.control('')
})]
)
А затем в вашем html должно быть что-то вроде этого:
<div [formGroup]="ClientForm" >
<div class="form-group">
<div *ngFor="let appAddr of ClientForm.get('applicant').controls; let i=index">
<div class="d-flex">
<label class="control-label required-field col-6 mr-1" for="applicant.{{i+1}}">Applicant Address.{{i+1}} </label>
<button type="button" class="btn btn-danger" (click)="addCol('applicant')">+</button>
</div>
<div class="form-inline" [formGroup]="appAddr">
<input type="text" class="form-control col-10" formControlName="app">
<button type="button" class="btn btn-danger" *ngIf="i > 0" (click)="delCol('applicant',i)">-</button>
</div>
</div>
</div>
</div>
С ClientForm, равным вашей форме!
Stackblitz здесь: https://stackblitz.com/edit/angular-formgroup-js2xiz