0

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

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

我是否正确地得出结论[基于@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]?我想不出这个例子。你能解释一下为什么一个人可能会使用一个而不是另一个或推荐的做法是什么(如果有的话)?

4

1 回答 1

3

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

发生这种情况是因为 angular 中的 [] 结构是一种方式绑定,因此它会一直监视您在组件中拥有的任何属性的值。

  • [formControl]="propertyInComponent"
  • [formControlName]="propertyInComponent"
  • formControlName="nameGivenByYou"
于 2018-11-16T20:58:19.147 回答