ngx-formly

Бесплатно
Открытый исходный код

Сайт: formly.dev

ngx-formly — библиотека для создания и управления динамическими формами в фреймворке Angular, реализующая декларативный подход к описанию полей формы. Она предоставляет абстракцию поверх стандартных форм Angular, позволяя определять структуру, валидацию и поведение полей через конфигурационные объекты вместо ручного написания шаблонного кода для каждого поля. Благодаря этому разработка сложных и изменяемых интерфейсов ввода данных становится более модульной и повторно используемой.

Проект ориентирован на интеграцию с реактивными формами Angular и поддерживает расширение за счёт пользовательских типов полей, валидаторов и обёрток. В типичном сценарии конфигурация формы описывается массивом полей, где каждое поле содержит ключ, тип, параметры отображения и правила валидации; затем библиотека генерирует необходимые контролы и шаблоны. Исторические детали происхождения проекта и точные даты релизов не указаны здесь; при отсутствии однозначных источников это описание фокусируется на функциональности и типичных возможностях, наблюдаемых в общедоступных описаниях.

  • Декларативная конфигурация: форма описывается объектами конфигурации, которые определяют поля, их типы, метаданные и связи.
  • Совместимость с Angular Reactive Forms: генерация FormControl, FormGroup и FormArray с полной поддержкой реактивной валидации.
  • Расширяемость типов полей: возможность добавления пользовательских компонентов ввода и повторного использования их как типов в конфигурации.
  • Управление валидацией: декларативные валидаторы и асинхронные проверки, отображение сообщений об ошибках через обёртки и шаблоны.
  • Условная логика и видимость: поддержка зависимостей полей, условного рендера и динамического изменения параметров в зависимости от значений других полей.
  • Международализация и локализация: интеграция с механизмами локализации для подписей, подсказок и сообщений об ошибках (через настройки приложения).
  • Темизация и обёртки: возможность оформления полей с помощью обёрток и повторно используемых шаблонов, упрощающая единообразный дизайн форм.
  • Управление данными: синхронизация начальных значений, сбора данных и преобразования значений при отправке или сохранении.
  • Инструменты для сложных структур: поддержка вложенных групп, массивов полей и повторяющихся наборов ввода.
  • Сообщество и интеграция: наличие расширений и примеров интеграции с UI-библиотеками и сторонними компонентами через адаптеры типов.
Подробнее