需要一些关于[formGroup]formGroupName、[formControl]formControlName的



我正在查看问题的现有答案formControlName和FormControl之间有什么区别?

并且仍然很难完全理解何时使用[formControl]而不是formControlName。

当我使用类似于的FormBuilder创建控件时,我的结论[基于@Paul Samsotha的评论]是正确的吗

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ünter Zöchbauer ansewer(:

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也是一样的:你什么时候会使用formGroupName而不是[formGroup]我想不出这个例子。你能解释一下为什么一个人可能会使用一个而不是另一个吗?或者建议的做法是什么(如果有的话(?

基本上,当您的表单是动态的时,您使用[formControl]或[formControlName],当您有一个固定的表单时,您只使用formControlName。

之所以会发生这种情况,是因为angular中的[]结构是单向绑定的,所以它会一直关注组件中任何属性的值。

  • [formControl]="propertyInComponent">
  • [formControlName]="propertyInComponent">
  • formControlName="nameGivenByYou">

最新更新