Angular: 如何处理 HTML 模板中的嵌套 FormGroup?
Angular: How do I deal with nested FormGroups in the HMLT Template?
我是 Angular 的新手,正在尝试构建一个表单来收集用户信息。
假设我有一个用户可以关联一个“朋友”。我的 FormGroup 的简化版本如下所示:
userInformation = new FormGroup({
name: new FormControl('', [Validators.required]),
age: new FormControl('', [Validators.required]),
friend: new FormGroup({
name: new FormControl('', [Validators.required]),
age: new FormControl('', [Validators.required])
})
})
在我的 HTML 中,我有:
<form [formGroup]="userInformation" (ngSubmit)="onSubmit">
<input type="text" placeholder="full name">
<input type="text" placeholder="full name">
<input type="text" placeholder="full name">
<input type="text" placeholder="full name">
</form>
如何将前两个输入绑定到 userInformation 并将后两个输入绑定到 userInformation.friend?
对于嵌套表单组,我们使用 formgroupName
,因此您只需创建一个容器,在其中设置 formGroupName
和其中的“好友”表单控件:
<form [formGroup]="userInformation">
<input type="text" formControlName="name" placeholder="name" />
<input type="text" formControlName="age" placeholder="age" />
<ng-container formGroupName="friend">
<!-- ^^^^^^^^^HERE^^^^^^^^^^^^^^^^-->
<input type="text" formControlName="name" placeholder="name" />
<input type="text" formControlName="age" placeholder="age" />
</ng-container>
</form>
我是 Angular 的新手,正在尝试构建一个表单来收集用户信息。
假设我有一个用户可以关联一个“朋友”。我的 FormGroup 的简化版本如下所示:
userInformation = new FormGroup({
name: new FormControl('', [Validators.required]),
age: new FormControl('', [Validators.required]),
friend: new FormGroup({
name: new FormControl('', [Validators.required]),
age: new FormControl('', [Validators.required])
})
})
在我的 HTML 中,我有:
<form [formGroup]="userInformation" (ngSubmit)="onSubmit">
<input type="text" placeholder="full name">
<input type="text" placeholder="full name">
<input type="text" placeholder="full name">
<input type="text" placeholder="full name">
</form>
如何将前两个输入绑定到 userInformation 并将后两个输入绑定到 userInformation.friend?
对于嵌套表单组,我们使用 formgroupName
,因此您只需创建一个容器,在其中设置 formGroupName
和其中的“好友”表单控件:
<form [formGroup]="userInformation">
<input type="text" formControlName="name" placeholder="name" />
<input type="text" formControlName="age" placeholder="age" />
<ng-container formGroupName="friend">
<!-- ^^^^^^^^^HERE^^^^^^^^^^^^^^^^-->
<input type="text" formControlName="name" placeholder="name" />
<input type="text" formControlName="age" placeholder="age" />
</ng-container>
</form>