代码之家  ›  专栏  ›  技术社区  ›  MHOOS

需要一些关于[formgroup]formgroupname,[formcontrol]formcontrolname的建议

  •  -2
  • MHOOS  · 技术社区  · 6 年前

    我在看现有的问题答案 What is the difference between formControlName and FormControl?

    但仍难以完全理解何时对formcontrolname使用[formcontrol]。

    我的结论是否正确[基于@paul samsotha comment]当我使用类似于

    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>
    

    如果我想声明我的表单如下(基于@gnter zchbauer 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也一样:什么时候在[formgroup]上使用formgroupname? 我想不出这个例子 . 你能解释一下为什么一个可以用一个代替另一个,或者推荐的做法是什么吗(如果有的话)?

    1 回复  |  直到 6 年前
        1
  •  2
  •   JuanF    6 年前

    基本上,当窗体是动态的时,可以使用[formcontrol]或[formcontrolname],当窗体是固定的时,只需使用formcontrolname。

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

    • [FormControl]=“属性组件”
    • [FormControlName]=“属性组件”
    • formcontrolname=“namegivenbyyou”