Пользовательская функция валидатора FormControl не будет работать - PullRequest
0 голосов
/ 22 октября 2018

Я пытаюсь использовать пользовательский валидатор в форме этого метода

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)?Я не получаю ошибок, это просто не касается метода.Это возможно проблема с тем, как я загружаю его в мой массив валидатора?

...