你需要使用
formArrayName
指令和
*ngFor
来实现如下效果:
<form [formGroup]="form" (ngSubmit)="sayHello()">
<input formControlName="name"><br>
<input formControlName="email"><br>
<div formArrayName="username">
<div *ngFor="let user of username.controls; let i=index">
<my-child formControlName="i"></my-child>
</div>
</div>
<button type="submit">Register</button>
</form>
使用FormBuilder时,您还需要使用FormArray。
form = new FormGroup({
name: new FormControl('My Name'),
username: new FormArray([
new FormControl("value"),
{firstName:"Anna", lastName:"Smith"},
{firstName:"Peter", lastName:"Jones"}
])
});
如需更多详细信息,请查看此文档。
情况2:传递FormGroup:
form = new FormGroup({
name: new FormControl('My Name'),
username: new FormArray([
new FormGroup({
firstName: new FormControl('Anna'),
lastName: new FormControl('Smith')
}),
new FormGroup({
firstName: new FormControl('Peper'),
lastName: new FormControl('Jones')
}),
])
})
如果你试图将FormGroup作为ngModel参数传递,那是不可能的!