В течение нескольких дней я пытался найти хороший шаблон для моего варианта использования. У меня очень сложная реактивная форма, полная вложенных компонентов, некоторые поля обязательны, некоторые поля могут появляться при определенных условиях и т. Д., И это создает огромную проблему с поддержанием кода. Подход, который я использовал до сих пор, заключается в передаче formControl дочерним компонентам и заполнению оттуда, но стало очень трудно отлаживать, учитывая размер формы. Обязательным условием для этой формы является то, что при отправке всей формы выполняется проверка всех вложенных полей и отмечается отметка AsTouched любого поля, которое требуется, но не было вставлено. Я изучаю 2 подхода, но ни один из них, похоже, не помогает:
- Аксессор управляющего значения: концепция идеальна, логика идеально разделена между дочерними элементами, и родитель не должен беспокоиться об этом, но КОНЕЦ заключается в том, что дочерние контроллеры не отображаются, и я не могу отметить как соответствующие ошибки
- Контейнер управления: этот подход, похоже, требует, чтобы все элементы управления были определены на родительском уровне, но, будучи очень большой формой, он кажется действительно контрпродуктивным и не решает мою проблему.
Интересно, есть ли у кого-нибудь опыт работы с такими формами и может ли он дать некоторые рекомендации о том, что является наилучшей практикой в этом случае. Я сделал очень простой stackblitz только с одним дочерним элементом, используя Контейнер управления, к сожалению, мне не удалось запустить его https://stackblitz.com/edit/angular-ivy-axbgr5