Я создаю подчиненную форму в форме Angular. https://codesandbox.io/s/distracted-cohen-4r1qd
Форма продолжает повторную визуализацию при добавлении определенного ввода.
Вот код
<form class="nlsg-c-form-element" [formGroup]="insuranceForm">
<div class="account-details accountDetails" formArrayName="ownerNames">
<h6>Additional policy details</h6>
<!-- owner name -->
<div
class="row"
*ngFor="let ownerName of insuranceForm.controls.ownerNames?.value;let i = index"
>
<div class="col">
<div class="nlsg-c-form-element__form-group" [formGroupName]="i">
<label
class="nlsg-c-form-element__label"
[innerHtml]="'Owner name'"
></label>
<input
class="nlsg-c-form-element__control"
type="text"
formControlName="name"
/>
</div>
</div>
<div class="col forMargin">
</div>
<div class="col" [formGroupName]="i">
<span
class="trash"
[hidden]="!insuranceForm.controls.ownerNames.controls[i].controls.name.value"
>
</span>
<span
class="trashGray"
[hidden]="insuranceForm.controls.ownerNames.controls[i].controls.name.value"
>
</span>
</div>
</div>
insuranceForm: FormGroup;
constructor(private fb: FormBuilder) {}
ngOnInit() {
this.initializeForm();
}
initializeForm() {
this.insuranceForm = this.fb.group({
productName: [null, Validators.required],
policyNumber: [null, Validators.required],
insuranceType: [null, Validators.required],
coverAmount: [null, Validators.required],
premiumAmount: [null, Validators.required],
frequency: [null, Validators.required],
dueDate: [null, Validators.required],
instExpDate: [null, Validators.required],
companyCode: [null, Validators.required],
ownerNames: this.fb.array([])
});
this.addOwnerNameField();
}
addOwnerNameField() {
const ownernameArray = this.insuranceForm.controls.ownerNames as FormArray;
ownernameArray.push(
this.fb.group({
name: ""
})
);
}
Как только я ввожу текст в текстовое поле, он позволяет мне добавить только 1 символ и затем выделить его из этого текстового поля.
Я думаю, что интерфейс формы перезагружается каждый раз, когда я что-то вводю в это.