如何在没有初始值设定项的情况下在 formGroup 中设置子 formGroup?

How do I set a child formGroup in a formGroup without the initializer?

我正在尝试将我的 formGroup 中的 属性 动态设置为 formGroup;如果你愿意的话,一个子表单组

// Example 1
var parent = this._formBuilder.group({
    id; [''].
    child: this._formBuilder.group({
        name: ['']
    })
})

 

// Example 2
var parent = this._formBuilder.group({
    id; [''],
    child: undefined
})

 

parent.patchValue({'child': this._formBuilder.group({ name: [''] }) })

示例 1 将使 parent.get('child') return 成为 formGroup。然而,在选项 2 中,parent.get('child').value return 是表单组。

如何使动态设置的 formGroup 像在 formGroup 初始值设定项中设置一样工作?

patchValue不是添加表单组或表单控件,而是更新 表单值。

要动态添加表单组,您需要使用setControladdControl

parent.setControl('child', this._formBuilder.group({ name: [''] }))