我正在尝试使用这种方法形式的自定义验证器
uniqueCodeValidator(control) {
if (this.products) {
for (const p of this.products) {
if (p.id === control.value && !this.todoid) {
return { idExists: true };
}
}
return null;
}
} // uniqueCodeValidator
,然后像这样将其加载到我的FormControl中:
this.id = new FormControl('', Validators.compose([this.uniqueCodeValidator.bind(this),
Validators.required]));
我的html:
<mat-form-field >
<input matInput placeholder="Product Id" type="text" formControlName="id">
<mat-hint *ngIf="id.errors && (id.dirty || id.touched)" align="end"
[ngStyle]="{'color': 'red'}">
<p *ngIf="id.hasError('required')">Product Id is required.</p>
<p *ngIf="!id.hasError('required') && id.hasError('idExists')">Unique Id Required
</mat-hint>
</mat-form-field>
我的问题是,为什么我的“必需”验证器起作用,但自定义验证器方法uniqueCodeValidator(control)不能起作用?我没有任何错误,它似乎并没有真正触及该方法。我如何将其加载到验证程序数组中,这可能是一个问题吗?