Как мне установить дочернюю FormGroup в FormGroup без инициализатора?

#angular #formgroups

#angular #formgroups

Вопрос:

Я пытаюсь динамически установить свойство в моей FormGroup в 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') возвращена FormGroup . однако в варианте 2 parent.get('child').value возвращается formgroup .

Как мне заставить динамически устанавливаемую FormGroup работать так, как если бы она была установлена в инициализаторе FormGroup?

Ответ №1:

patchValue предназначен не для добавления группы форм или элемента управления формами, а для обновления значения формы.

Чтобы добавить группу форм динамически, вам нужно использовать setControl или addControl .

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