• 需求:当用户在文本框输入完内容,离开焦点以后,验证输入的内容是否是唯一的 ```typescript import { AbstractControl, ValidationErrors } from “@angular/forms”

    // 定义一个类 export class myValidators { static shouldBeUnique(control: AbstractControl): Promise { return new Promise(resolve => { if (control.value == “admin”) { resolve({ shouldBeUnique: true }) } else { resolve(null) } }) } }

    1. ```typescript
    2. // src/app/validators/validators.component.ts
    3. import { myValidators } from '../myValidators';
    4. contactForm: FormGroup = new FormGroup({
    5. name: new FormControl("默认值", [
    6. Validators.required,
    7. ], myValidators.shouldBeUnique) // FormControl 的第三个参数是异步规则
    8. })
    1. <div *ngIf="name.touched && name.invalid && name.errors">
    2. <div *ngIf="name.errors?.['shouldBeUnique']">用户名重复</div>
    3. </div>
    4. <div *ngIf="name.pending">正在检测姓名是否重复</div>