javascript - ¿Cómo activar manualmente la validación de entrada en Angular 2?
Tengo dos entradas:
- El primero sobre el que aplico mi validador personalizado
- El segundo, qué valor uso en mi validador personalizado (es dinámico y editable)
Si aplico mi validador personalizado en el primer campo de entrada, luego enfoco el segundo y cambio el valor, quiero forzar la revalidación del primer campo de entrada...
Por el momento, solo vuelve a validar la primera entrada cuando cambio el valor... ¿Alguna sugerencia?
En el momento en que enfoco la primera entrada, puedo acceder a su referencia:
<input
name="mEnd"
class="form-control"
[(ngModel)]="endDate"
...
#endDateInput="ngModel"
(focus)="clog(endDateInput)"
>
Me pregunto si puedo activar la revalidación usando los métodos de referencia del formControl de entrada.
Respuesta #1
Puedes actualizar la validez de un formControl
form.controls['myControl'].updateValueAndValidity();Respuesta #2
Encontré esto mucho mejor
this.myForm.markAllAsTouched();
Respuesta #3
Si tienes un formulario basado en plantilla, puedes acceder al formulario a través del decorador ViewChild:
@ViewChild('myForm') public form: NgForm;
entonces, valida un campo o todo el grupo de formularios usando el método mencionado arriba:
this.form.controls.myControl.updateValueAndValidity();
