Hola usuario de nuestro sitio web, tenemos la respuesta a lo que buscabas, desplázate y la encontrarás aquí.
Solución:
Los formularios angulares tienen una función integrada setValidators() que permite la asignación programática de validadores.
Para tu ejemplo puedes hacer:
if(this.businessFormGroup.get('businessType').value !== 'Other')
this.businessFormGroup.controls['description'].setValidators([Validators.required, Validators.maxLength(200)]);
else
this.businessFormGroup.controls['description'].setValidators([Validators.maxLength(200)]);
Es importante tener en cuenta que al usar este método, sobrescribirá sus validadores existentes por lo que deberá incluir todos los validadores que necesita/quiere para el control que está reiniciando.
este me funciono
onAddValidationClick()
this.formGroup.controls["firstName"].setValidators(Validators.required);
this.formGroup.controls["firstName"].updateValueAndValidity();
onRemoveValidationClick()
this.formGroup.controls["firstName"].clearValidators();
this.formGroup.controls["firstName"].updateValueAndValidity();
Si cambia el “validador requerido” más de una vez (por ejemplo, usando una casilla de verificación), debe agregar esto:
this.formGroup.controls["firstName"].setErrors(null);
Asi que:
onAddValidationClick()
this.formGroup.controls["firstName"].setValidators(Validators.required);
this.formGroup.controls["firstName"].updateValueAndValidity();
onRemoveValidationClick()
this.formGroup.controls["firstName"].setErrors(null);
this.formGroup.controls["firstName"].clearValidators();
this.formGroup.controls["firstName"].updateValueAndValidity();
Calificaciones y reseñas
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)