Я думаю, что вы ищете здесь реактивную форму, которая может добавить людей на лету к форме:
Вот минимальный шаблон:
<form [formGroup]="personsForm" (submit)="onFormSubmit()">
<div formArrayName="persons">
<div *ngFor="let person of persons; let i = index;" [formGroupName]="i">
Name: <input type="text" formControlName="name"><br>
Amount: <input type="text" formControlName="amount">
</div>
</div>
<button type="button" (click)="addPerson()">
Add Person
</button>
<button>
Submit
</button>
</form>
Вот класс компонентов:
import { Component } from '@angular/core';
import { FormGroup, FormControl, FormBuilder, FormArray } from '@angular/forms';
@Component(...)
export class AppComponent {
personsForm: FormGroup;
constructor(private fb: FormBuilder) {}
ngOnInit() {
this.personsForm = this.fb.group({
persons: this.fb.array([])
});
}
onFormSubmit() {
alert(JSON.stringify(this.personsForm.value));
}
addPerson() {
(<FormArray>this.personsForm.get('persons')).push(this.fb.group({
name: [],
amount: []
}));
}
get persons() {
return (<FormArray>this.personsForm.get('persons')).controls;
}
}
Вот Образец StackBlitz для вашей ссылки.