角度:当验证请求处于“待处理”状态时,使自定义HTTP验证程序不显示错误消息

时间:2019-04-14 15:42:28

标签: angular rest validation http

在Angular对话框中,我用于某些输入字段的自定义后端验证,该操作检查输入的值的存在。如果找不到该值,它将在该字段下方显示一条错误消息。 但是,当对后端的请求仍处于“ PENDING”状态时,它还会显示一条错误消息。完成请求并返回状态代码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实现这一目标。和HTML中的formControl标签。

这是来自自身HTML组件的HTML代码段,该HTML组件负责错误消息。

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

所以问题在于,一旦请求开始并处于待处理状态,验证器就会失效。

如何更改?

非常感谢

0 个答案:

没有答案
相关问题