Angular: сделать так, чтобы настраиваемый HTTP Validator не отображал сообщение об ошибке, когда запрос проверки находится в состоянии ожидания - PullRequest
0 голосов
/ 14 апреля 2019

в угловом диалоге, который я использую для некоторых полей ввода пользовательской проверки бэкэнда, которая проверяет наличие введенного значения.Если значение не может быть найдено, оно отображает сообщение об ошибке прямо под полем.Однако также отображается сообщение об ошибке, когда запрос к бэкэнду все еще находится в состоянии «В ОЖИДАНИИ».Когда запрос выполнен и возвращен код состояния 200, сообщение об ошибке исчезает.Я не хочу, чтобы сообщение об ошибке отображалось, хотя запрос находится в состоянии ожидания, только когда запрос выполнен и возвращается ошибка HTTP.

Мой пользовательский валидатор выглядит следующим образом:

public articleExistsValidator(formControl: AbstractControl): Observable <ValidationErrors | null > {
return this.meterReplacementService.getArticle(this.clientName, formControl.value).pipe(
  map(
    article => {
      if (article) {
        this.ac_equipmentNumber = article.equipment.equipmentNumber;
        return null;
      }
    }),
  catchError ( err => {
    this.articleError = 'MeteringChangeProcessDlg.errorMsg.articleNotFound';
      return Observable.throw(err.statusText);
    }
  )
)

}

Я обычно реализую это через FormGroupBuilder.и тег formControl в HTML.

Это фрагмент кода HTML из собственного компонента HTML, который отвечает за сообщение об ошибке.

  <div *ngIf="formControlDefined() && (!formControl.valid && formControl.touched)"
   class="inputLabel error-label">
{{errorMsg}}

Итак, проблема в том,что валидатор становится недействительным после запуска и ожидания запроса.

Как его можно изменить?

Большое спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...