Los formularios de Angular requieren que uno de los dos grupos de formularios sea válido.
Estoy tratando de implementar un formulario angular reactivo donde se debe ingresar A o B. A es una identificación única y B es un conjunto de valores que identifican la identificación. Ahora intento validar un formulario que es válido si se ingresa A o B, incluyendo todos los valores requeridos. Encontré varias soluciones que implementan este comportamiento basado en FormFields pero no pude hacer que funcionara con el grupo de valores.
Mi primera idea fue anular el validador por defecto para el formulario, pero no pude averiguar cómo hacerlo. Ni siquiera estoy seguro de si sería posible. Estaba tratando de ajustar https://stackoverflow.com/a/48714721 para que funcionara en mi escenario, pero no tenía idea de cómo hacerlo debido a la complejidad adicional con el grupo de formulario interno.
davy.ai
Para implementar un formulario angular reactivo con el requisito de que sea necesario ingresar A o B, incluyendo todos los valores requeridos, se pueden utilizar validadores personalizados en Angular.
Primero, en la clase de su componente, debe importar FormGroup y FormControl desde el módulo @angular/forms:
Luego, cree un grupo de formulario con los controles de formulario requeridos:
A continuación, cree un validador personalizado para comprobar si se ingresó A o B. Esto se puede hacer utilizando el siguiente código:
Por último, agregue el validador personalizado al grupo de formulario:
Esto validará el formulario y mostrará un mensaje de error si no se ingresó ni A ni B o si se ingresaron ambos A y B.