FormGroup addControl не обновляет элементы управления в представлении - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть существующая FormGroup с некоторыми элементами управления, которые показаны в шаблоне. Теперь я хочу заменить FormGroup другой FormGroup с немного другими полями.

 this.removeAllControls(); // removes Controls of this.formGroup
 const newFormGroup: FormGroup = FormGroupFactory.createFormGroup(......);
    this.setControls(newFormGroup);

Сначала я удалил все элементы управления this.formGroup. Затем я создаю новую группу FormGroup с некоторыми новыми элементами управления, а некоторые остались прежними (то же имя FormControlName, но с другим значением и валидатором).

После этого я вызываю:

private setControls(newFormGroup: FormGroup): void {
    Object.keys(newFormGroup.controls).forEach(key => {
        const formControlCopy: FormControl = newFormGroup.get(key) as FormControl;
        const newFormControl: FormControl = new FormControl(formControlCopy.value, {updateOn: formControlCopy.updateOn, validators: formControlCopy.validator}, formControlCopy.asyncValidator);
        this.formGroup.addControl(key, newFormControl);
    });
}

После того, как я добавив новые элементы управления, шаблон теряет соединение с FormControls ... поэтому, если я попытаюсь this.formGroup.get(nameWhichWasInTheOldAndTheNewFormGroup).setValue('..')

Значение установлено, но представление не изменяется ....

...