AsyncValidator • Angular
interface
stable
An interface implemented by classes that perform asynchronous validation.
API
interface AsyncValidator extends Validator { validate(control: AbstractControl<any, any, any>): Promise<ValidationErrors | null> | Observable<ValidationErrors | null>; optional override registerOnValidatorChange(fn: () => void): void;}
validate
Promise<ValidationErrors | null> | Observable<ValidationErrors | null>Method that performs async validation against the provided control.
@paramcontrolAbstractControl<any, any, any>
The control to validate against.
@returnsPromise<ValidationErrors | null> | Observable<ValidationErrors | null>
registerOnValidatorChange
voidRegisters a callback function to call when the validator inputs change.
@paramfn() => void
The callback function
@returnsvoid
Usage Notes
Provide a custom async validator directive
The following example implements the AsyncValidator interface to create an
async validator directive with a custom error key.
import { of } from 'rxjs';@Directive({ selector: '[customAsyncValidator]', providers: [{provide: NG_ASYNC_VALIDATORS, useExisting: CustomAsyncValidatorDirective, multi:true}]})class CustomAsyncValidatorDirective implements AsyncValidator { validate(control: AbstractControl): Observable<ValidationErrors|null> { return of({'custom': true}); }}