вам следует использовать FormArray. Во-первых, поверх других импортируемых форм вы захотите импортировать FormArray из модуля угловых форм:
app.component.ts
import { FormBuilder, FormGroup, FormArray } from '@angular/forms';
signUpForm: FormGroup;
items: FormArray ;
ngOnInit() {
this.signUpForm = this.formBuilder.group({
formName: '',
formDescription: '',
items: this.formBuilder.array([ this.createItem() ])
});
this.addItem()
this.addItem();
}
createItem(): FormGroup {
return this.formBuilder.group({
field1: '',
field2: ''
});
}
addItem(): void {
this.items = this.signUpForm.get('items') as FormArray;
this.items.push(this.createItem());
}
в html:
<div formArrayName="items"
*ngFor="let item of signUpForm.get('items').controls; let i = index;">
<div [formGroupName]="i">
<input formControlName="field1" placeholder="field1">
<input formControlName="field2" placeholder="field1">
</div>
</div>
Теперь это так же просто, как вызвать наш метод addItem
в нашем шаблоне, когда пользователь нажимает, чтобы добавить новый элемент или сделать это в нашем компоненте.