Mam dwa wejścia: - pierwszy, na którym stosuję mój niestandardowy walidator - drugi, który wartość, którego używam w moim niestandardowym walidatorze (jest dynamiczny i edytowalny)

Jeśli zastosowałem mój niestandardowy walidator na pierwszym wejściu, skoncentruję się drugą i zmienić wartość - chcę wymusić pierwsze wejścia ponownie walidacja ...

W tej chwili ponownie potwierdza pierwsze wejście, gdy zmieniam wartość ... Wszelkie sugestie?

W tej chwili, kiedy skupię pierwsze wejście, do których mogę uzyskać dostęp do tego:

            <input
              name="mEnd"
              class="form-control"
              [(ngModel)]="endDate"
              ...
              #endDateInput="ngModel"
              (focus)="clog(endDateInput)"
            >

Zastanawiam się, czy mogę wywołać ponownie walidacja przy użyciu metod referencyjnych FormControl Input Wejście?

58
Slimas Slimanauskas 26 czerwiec 2017, 14:45

3 odpowiedzi

Najlepsza odpowiedź

Możesz zaktualizować ważność formaControlu

form.controls['myControl'].updateValueAndValidity();

86
Robin Dijkhof 27 czerwiec 2017, 16:13

Znalazłem to znacznie lepiej

this.myForm.markAllAsTouched();
7
C.Ikongo 14 wrzesień 2019, 01:10

Jeśli masz formularz napędzany szablonem, możesz uzyskać dostęp do formularza rzutu Viewchild Decorator:

@ViewChild('myForm') public form: NgForm;

Następnie weryfikuj jedno pole lub całą grupę formularza przy użyciu metody wymienionej powyżej:

this.form.controls.myControl.updateValueAndValidity();
11
Mariia Bilyk 16 lipiec 2019, 07:40