Я могу придумать как минимум два angular способа сделать это:
Удалить с помощью *ngIf
export class EmployeeDetailsComponent {
public showBusinessIncome = true;
public showRealEstate = true;
removeIncomeField(input: number) {
if(input === 1) {
this.showBusinessIncome = false;
}
else if (input === 2) {
this.showRealEstate = false;
}
}
}
И в html
<app-income-field placeholder="Business income" [value]=""
type="number" name="businessIncome" (textValue)="getTextValue($event, 'businessIncome')" [showDeleteIcon]="true" *ngIf="showBusinessIncome"
[parentForm]="employee_info_form" id="business" (deleteIncomeField)="deleteSelectedField(1)">
</app-income-field>
<app-income-field placeholder="Real estate" [showDeleteIcon]="true" [value]=""
type="number" name="realEstateIncome" *ngIf="showRealEstate" (deleteIncomeField)="deleteSelectedField(2)" (textValue)="getTextValue($event, 'realEstateIncome')"
[parentForm]="additional_info_form">
</app-income-field>
Создайте пользовательский элемент управления IncomeFieldComponent
и обработайте его с помощью реактивных форм
Это немного сложнее, но я бы предложил следовать этому руководству по материалам
Тогда вы сможете правильно удалить элемент управления из FormGroup
Angular справочника по групповым формам
const myForm = new FormGroup({
businessIncome: new FormControl('businessIncome'),
realEaste: new FormControl('realEstate')
});
this.myForm.removeControl('businessIncome', null);