Angular - Родительская форма не обновляется, когда недопустимая форма привязана к дочернему контроллеру формы, который также является компонентом angular - PullRequest
1 голос
/ 09 января 2020

У меня есть вариант использования, когда объект формы создается в службе, теперь, когда страница отображается в диалоговом окне, форма читается из службы в ngOnInit и привязывается к локальной переменной который используется в шаблоне. Позже форма используется для чтения данных.

Проблема заключается в следующем, когда форма действительна, и пользователь переходит на следующую страницу и возвращается на эту страницу, все работает нормально, НО, когда форма неверно, и пользователь покидает, а затем возвращает родительскую форму не обновляется правильно.

Дочерний компонент имеет правильную допустимость, но родительская форма остается недействительной. Я заметил, что между этими двумя вариантами использования различие заключается в объекте ошибки в формах.

Я попытался обновить действительность, вызвав updateValueAndValidity в родительской форме. Но это не сработало.

Единственное, что сработало, - это вызов setValidators ([]) для дочернего элемента формы без каких-либо валидаторов. У него не было валидаторов для начала.

Ниже приведен пример проблемы со стеком.

https://stackblitz.com/edit/angular-8-app-example-ent7s2?embed=1&file=src / app / parent-form-component / parent-form.component.ts & view = preview

1 Ответ

0 голосов
/ 09 января 2020

Кажется, я это исправил. Проблема заключалась в том, что каждый раз, когда ngOnInit назывался исходной формой (в компоненте приложения), терял ссылку на дочернюю FormGroup из-за оператора «new FormGroup ()» внутри дочернего компонента. Чтобы избежать этой проблемы, не пытайтесь переназначать FormGroups внутри формы.

...