我有一个嵌套的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
一起使用?
答案 0 :(得分:0)
有两种方法,您可以获取总价值:
formData.value.item2.imgData
或强制转换为FormGroup ...
(<FormGroup>formData.controls['item2']).controls['imgData'].value;
controls和get()都返回AbstractControls,它可以是控件,组或数组。您需要告诉角度是什么,因为控件没有自己的控件。