Angular为什么通过.controls访问嵌套的formgroup会在使用[controls]时抛出错误

时间:2017-12-28 11:59:50

标签: angular angular2-formbuilder

尝试访问嵌套表单组时,如下所示

this.parentForm = this.FormBuilder.group({
  name: [''],
  addressGroup: this.FormBuilder.group({
    street: [''],
    city: ['']
  });
});

当尝试访问像this.parentForm.controls.addressGroup.controls.street这样的街道时 - 它会抛出错误属性'控件'类型' AbstractControl'上不存在,但是在访问时不会抛出错误,如下所示.parentForm.controls.addressGroup [' controls']。street

有人可以解释原因和原因,我已经搜索了很多而且找不到合适的理由

1 个答案:

答案 0 :(得分:1)

FormGroup.controls返回类型为{[key: string]: AbstractControl}this.parentForm.controls.addressGroup将返回AbstractControl。这就是你遇到错误的原因。 要解决方法,请使用get方法:this.parentForm.get('addressGroup.street')