Angular6-使用名称获取嵌套的FormGroup

时间:2018-09-24 12:50:49

标签: typescript angular6 form-control formgroups

我有嵌套表单组

address = new FormGroup({
'com.complex.Address':new FormGroup({
            city: cityControl,
            streetName: streetNameControl,
            houseNumberAddition: houseNumberAdditionControl,
            houseNumber: houseNumberControl,
            postcode: postcodeControl
          })
});

我想找到嵌套的表单组,即“ com.complex.Address”。

我已经尝试过

this.form.get('address').get('com.complex.Address');

但是它总是返回Null值。

现在,如果我将嵌套的表单组(即“ com.complex.Address”)更改为其他任何名称(例如“ test”)并执行this.form.get('address').get('test');,它实际上会返回我想要的值。

但是关键是我无法更改嵌套名称,并且嵌套名称中将包含一些特殊字符。

我如何才能转义字符并根据需要使用表单组??

2 个答案:

答案 0 :(得分:1)

使用。来查看.get()的角度代码。作为创建路径数组的定界符。

我看不出有什么办法可以解决问题。无论如何,您都可以使用:

(<FormGroup>this.form.get('address')).controls['com.complex.Address']; 

答案 1 :(得分:0)

尝试这样

 NewForm = this.fb.group({
        relationshipId: this.fb.group({
            code: [null, Validators.required]
        })});

this.NewForm.get('relationshipId').value.code  
this.NewForm.get('relationshipId').get('code').value`