Рекурсивная ReactiveForm не может найти группы форм внутри шаблона - PullRequest
0 голосов
/ 16 мая 2019

Я использую объект метаданных для динамического создания очень большой формы (~ 400 входных данных, хотя в примере stackblitz показан небольшой образец). Мне нужно использовать структуру метаданных для переноса входной информации (например, типа ввода, выбора параметров, размера шага и т. Д.). Когда мой html ng-шаблон вызывается рекурсивно внутри a и впоследствии, родительская форма не распознается. Когда я преодолеваю начальный уровень рекурсии, ReactiveForm не может отследить нужную форму FormGroup.

По сути, formGroupName, по-видимому, не может проходить через уровни рекурсивного шаблона.

Я некоторое время крутил колесо, пытаясь получить этот функционал, но безрезультатно.

У меня есть пример того, что я пытаюсь сделать.

https://stackblitz.com/edit/angular-jndvkb

Любая помощь в выяснении того, почему путь вниз через FormGroup не работает внутри шаблонов, будет принята с благодарностью.

1 Ответ

0 голосов
/ 17 мая 2019

По какой-то причине formGroupName не может попасть в ng-контейнер. Чтобы исправить это, я переместил formGroupName в начало ng-шаблона и изменил его на [formGroup]. Экземпляр formGroup передается в ng-шаблон, и там создаются вложенные / рекурсивные формы.

Решение стекаблица: https://stackblitz.com/edit/angular-k9saz2

Я до сих пор не знаю причину проблемы, но теперь у меня есть форма, которая рекурсивно генерируется из начальной группы formGroup, и все валидаторы привязаны к каждому входу. У меня также есть доступ к структуре метаданных для отображения входных данных по мере необходимости.

Я также могу легко добавлять / удалять / редактировать входные данные, только изменяя первоначальное объявление formGroup в моем конструкторе. Это облегчает обслуживание в будущем.

Следующим шагом для меня было бы перенести всю группу formGroup и генерацию метаданных в службу и передать их в этот компонент в качестве входных данных, чтобы я мог повторно использовать этот шаблон для различных групп форм.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...