Introducción En un artículo anterior exploramos cómo crear un formulario basado enteramente en signals en Angular. Aquel ejemplo era sencillo, sin lógica de negocio y sin validaciones. Aquí describimos cómo escribir lógica de negocio y reglas de validación de forma clara, escalable y reutilizable.
Modelo y formulario El patrón base consiste en tener un modelo reactivo que actúa como fuente de verdad y una estructura de formulario ligada a ese modelo. En Angular Signals cada campo expone estados reactivos como valid o disabled que son derivados, es decir son computados a partir de la lógica de campo que definimos en el esquema.
Definir la lógica de campos Uno de los puntos clave es declarar la lógica de negocio y la validación de forma declarativa al definir el formulario. No se usan comandos imperativos posteriores para modificar el estado del campo como disable. En su lugar, un campo puede estar requerido o deshabilitado en función de otras señales o condiciones estáticas. Toda la lógica y las reglas se representan mediante un esquema que actúa como plano de validación para el formulario completo o para campos concretos.
Qué es un esquema Un esquema es una función que recibe una ruta hacia un campo y aplica reglas sobre esa ruta. Este enfoque permite que el esquema esté tipado y encaje con la estructura del formulario. También permite exportar esquemas y reutilizarlos en distintos lugares, facilitando la creación de librerías de validación reutilizables.
Validadores integrados y personalizados Existen validadores clásicos integrados como required, email, minLength o maxLength. Para reglas específicas se dispone de dos helpers principales: validate y error. La función validate permite devolver una lista de errores con información detallada. La función error es una versión simplificada que devuelve verdadero o falso y opcionalmente un mensaje amigable para el usuario. Ambos reciben como primer parámetro la ruta del campo, lo que permite validar tanto campos individuales como estructuras enteras del formulario.
Uso avanzado y ejemplos prácticos Con validate se puede integrar cualquier librería de validación externa. Por ejemplo se puede llamar a un validador de esquema y mapear sus errores a la estructura de errores del formulario. Las funciones de ayuda disponibles en el contexto de validación incluyen value que devuelve la señal del valor, valueOf para obtener el valor de una ruta concreta y stateOf para acceder al estado de un campo.
Composición de esquemas Para mantener el código limpio y escalable es recomendable fragmentar las reglas en pequeños esquemas reutilizables y componerlos. La función apply permite aplicar un esquema a una ruta concreta, applyEach aplica un esquema a cada elemento de un array y applyWhen aplica un esquema condicionalmente en función de una condición booleana. Este patrón de composición facilita compartir reglas comunes como la validación de descripciones o confirmación de contraseñas entre múltiples formularios.
Ejemplo conceptual Un flujo habitual es crear un esquema para la descripción con required, minLength y maxLength, exportarlo y luego aplicarlo dentro del esquema del formulario principal con apply. Para listas de elementos se usa applyEach y para campos que dependen de otros se usa applyWhen para activar la validación solo cuando se cumpla una condición sobre el modelo.
Beneficios y buenas prácticas Definir la lógica de negocio y la validación mediante esquemas declarativos mejora la mantenibilidad, facilita pruebas unitarias y permite reutilizar validaciones en varias aplicaciones o módulos. Además la integración con señales hace que los estados de los campos sean completamente reactivos y previsibles.
Q2BSTUDIO y servicios relacionados En Q2BSTUDIO estamos especializados en desarrollo de software a medida y aplicaciones a medida, y ayudamos a empresas a diseñar formularios complejos y experiencias reactivas con tecnologías modernas. Ofrecemos servicios que complementan la construcción de formularios y arquitecturas seguras, desde desarrollo full stack hasta soluciones de desarrollo de aplicaciones a medida y consultoría en inteligencia artificial aplicada a procesos de negocio.
Además podemos integrar mejores prácticas de seguridad y auditoría dentro de tus formularios y APIs mediante nuestros servicios de ciberseguridad y pentesting, y desplegar soluciones en servicios cloud como AWS y Azure. También trabajamos con herramientas de inteligencia de negocio y Power BI para convertir datos de formularios y procesos en información útil para la toma de decisiones, y desarrollamos agentes IA y soluciones de ia para empresas que automatizan tareas o enriquecen la experiencia de usuario.
Conclusión Definir la lógica de un formulario mediante esquemas declarativos y la composición de pequeñas piezas permite construir soluciones robustas y reutilizables. Con Angular Signals se logra además una experiencia reactiva y limpia donde los estados son derivados y previsibles. Si necesitas ayuda implementando formularios complejos, integración con servicios cloud aws y azure, soluciones de ciberseguridad o proyectos de inteligencia artificial y business intelligence ponte en contacto con Q2BSTUDIO para valorar una solución a medida que incluya agentes IA, servicios de power bi y mucho más.