【问题标题】:FormGroup, get names of FormControl instead of numbers in AngularFormGroup,获取FormControl的名称而不是Angular中的数字
【发布时间】:2022-01-29 23:34:53
【问题描述】:

我的代码中有:

  private buildFormGroup() {
    const internalFormGroup = this.formBuilder.group({
      document: ['', [Validators.required, Validators.min(this.minValueDocument)]],
      company: ['', [Validators.required]],
      typeClient: ['', [Validators.required]],
      textRequest: ['', [Validators.required, Validators.minLength(this.minNumberCharPerRequest)]],
      files: [''],
      myKey: ['myValue'],
    });

    return internalFormGroup;
  }

在我的构造函数中,我在 answer 之后有以下几行:

this.formGroup = this.buildFormGroup();

for(let item in Object.keys(this.formGroup.controls)) {
  console.log(item)
}
for(let item in this.formGroup.controls) {
  console.log(this.formGroup.controls[item])
}

但是,我只得到数字,value 显示为空!!!

我忘记了什么? 如何获取控件的name(而不是其Value)?

对于我之前的例子:我想得到:document, company, typeClient, textRequest,files, myKey

【问题讨论】:

  • 在此处添加.value console.log(this.formGroup.controls[item].value) 会解决您的问题吗?
  • 另外,this.formGroup.value 应该为您提供所有当前值

标签: angular formgroups


【解决方案1】:

for...in 语句遍历对象的所有可枚举属性,这些属性由字符串作为键。 MDN docs

由于您已经将控件中的键提取到数组中,因此 for...in 正在遍历数组键。

您必须直接在 formGroup.controls 上使用 for...in

for(let item in this.formGroup.controls) {
  console.log(item)
}

或者改用for...of

for(let item of Object.keys(this.formGroup.controls)) {
  console.log(item)
}

干杯

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-10
    • 2017-10-05
    • 1970-01-01
    • 1970-01-01
    • 2014-12-01
    • 2019-01-31
    • 1970-01-01
    相关资源
    最近更新 更多