异步验证器的唯一名称

时间:2019-10-03 12:21:05

标签: javascript angular validation asynchronous angular-material

我想知道是否可以在提交表单之前向服务器提交。

我向您解释,我有一个带有一些输入的表格,这些输入(例如:name,group,client)可能已经创建,但是当我使用输入字段时,我需要向服务器发出请求以获取答案并显示错误消息。

我做了一个custon异步验证器,但是出了点问题, 我只想检查名称是否已经存在,但也可能会留空。

现在,当我使用它时,它总是向我显示错误验证。

import {AbstractControl, ValidationErrors, AsyncValidatorFn} from '@angular/forms';
import { Observable} from "rxjs";
import {FixtureService} from "../../app/services/fixture.service";
import {map} from'rxjs/operators';

export function UniqueFixtureNameValidator(fixtureService: FixtureService): AsyncValidatorFn {
  return (c: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> => {
    return fixtureService.getFixture(c.value).pipe(
      map(name => {
       return name && name.length > 0 ? { 'uniqueFixtureName': true } : null;
      })
    );
  };
}

0 个答案:

没有答案