A practical guide on how one development team evolved their Angular Forms strategy in a medical enterprise context. Starting from basic Reactive Forms, they developed reusable input form field components using Control Value Accessors (CVA) and NgControl, created an abstract BaseFormField class for shared behavior, built a generic error container with a humanizeFormMessages pipe for validation messages, and used FormGroupDirective to break large wizard forms into manageable isolated steps. Testing is done with angular-testing-library to simulate real user interactions rather than implementation details.
Table of contents
A bit of backgroundInput form fieldsForm directivesSuper-charged Control Value Accessor’sForm validationCreating wizards with FormGroupDirectiveTesting formsSome of the resources that helped us to tackle this problem1 Impression