嵌套表单组Angular的访问值

时间:2019-07-26 04:01:32

标签: angular forms

我有一个嵌套的FormGroup,如下所示:

formData = new FormGroup({
      item0: this.createForm(),
      item1: this.createForm(),
      item2: this.createForm(),
      item3: this.createForm()
    });

每个项目都是一个具有由createForm函数创建的3个属性的表单组:

createForm() {
    return new FormGroup({
      title: new FormControl(undefined, Validators.required),
      imgData: new FormControl(undefined, Validators.required),
      description: new FormControl(undefined, Validators.required)
    });
  }

现在我需要访问例如item2的imgData内的值,所以我尝试了:

formData.controls['item2'].controls['imgData'].value

但有一个错误:类型'AbstractControl'不存在属性'controls'。

不过,当我尝试使用.get('imgData')时,效果很好。

是否有一种方法可以在没有get的情况下仅与controls一起使用?

1 个答案:

答案 0 :(得分:0)

有两种方法,您可以获取总价值:

formData.value.item2.imgData

或强制转换为FormGroup ...

(<FormGroup>formData.controls['item2']).controls['imgData'].value;

controls和get()都返回AbstractControls,它可以是控件,组或数组。您需要告诉角度是什么,因为控件没有自己的控件。