自定义FormControl验证程序功能将无法运行

时间:2018-10-22 04:31:17

标签: angularjs angular-ng-if customvalidator form-control

我正在尝试使用这种方法形式的自定义验证器

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)不能起作用?我没有任何错误,它似乎并没有真正触及该方法。我如何将其加载到验证程序数组中,这可能是一个问题吗?

0 个答案:

没有答案