我正在寻找现有的问题答案 What is the difference between formControlName and FormControl?
并且仍然难以完全理解何时在formControlName上使用[formControl]。
我想根据[Paul Paulsosotha的评论]得出的结论是,当我使用类似于
的FormBuilder创建控件时,constructor(fb: FormBuilder) {
this.myForm = fb.group({
'fullname': ['', Validators.required],
'gender': []
});
}
然后我应该使用类似的东西
<form [formGroup]="myForm">
<label>
First Name:
<input type="text" formControlName="fullname">
</label>
<label>
Last Name:
<input type="text" formControlName="gender">
</label>
</form>
如果我要声明如下形式(基于@GünterZöchbaueransewer):
constructor(fb: FormBuilder) {
this.myForm = fb.group({
'fullname': new FormControl('');
'gender': new FormControl('')
});
}
使用以下语法:
<form [formGroup]="myForm">
<label>
First Name:
<input type="text" [formControl]="fullname">
</label>
<label>
Last Name:
<input type="text" [formControl]="gender">
</label>
</form>
以上是否正确?同样,[formGroup]和formGroupName也是一样:什么时候您要在[formGroup]上使用formGroupName? 我无法为此提供一个示例。您能解释一下为什么一个人可以使用另一个方法吗?或者推荐的做法是(如果有的话)?
答案 0 :(得分:2)
基本上,当表单是动态表单时,可以使用[formControl]或[formControlName];当具有固定表单时,只需使用formControlName。
之所以会发生这种情况,是因为angular中的[]结构是一种绑定方式,因此它会一直监视组件中所有属性的值。