【发布时间】:2017-11-13 22:17:55
【问题描述】:
正如 Angular documentation 所说,我们可以在表单中使用 formControlName:
<h2>Hero Detail</h2>
<h3><i>FormControl in a FormGroup</i></h3>
<form [formGroup]="heroForm" novalidate>
<div class="form-group">
<label class="center-block">Name:
<input class="form-control" formControlName="name">
</label>
</div>
</form>
正如他们所说...
在没有父 FormGroup 的情况下,[formControl]="name" 更早地工作,因为该指令可以独立,也就是说,它可以在没有 FormGroup 的情况下工作。对于父 FormGroup,名称输入需要语法 formControlName=name 才能与类中的正确 FormControl 关联。此语法告诉 Angular 查找父 FormGroup,在本例中为 heroForm,然后在该组内查找名为 name 的 FormControl。
无论如何,几个月前我问this 弄清楚formControlName 和[formControl] 之间的区别。
现在我的问题是:如何将 formControlName 与嵌套的 FormGroups 一起使用?
例如,如果我有以下表单结构:
this.myForm = fb.group({
'fullname': ['', Validators.required],
'gender': [],
'address': fb.group({
'street': [''],
'houseNumber': [''],
'postalCode': ['']
})
});
使用formControlName 将“street”(或“houseNumber”或“postalCode”)绑定到相关 HTML 元素的正确方法是什么?
【问题讨论】:
-
使用 formGroupName stackoverflow.com/questions/44431613/…
-
@yurzui 的评论是解决方案,只需在嵌套的 html 模板中使用 formGroupName,然后再将 formControlName 作为子 html 元素访问
标签: forms angular angular-reactive-forms