Html 异步自定义验证问题

Html 异步自定义验证问题,html,angular,Html,Angular,我已经为我的角度表单创建了一个异步自定义验证。验证器检查一系列电子邮件,以查看用户输入的电子邮件是否已注册(就像您在一般登录屏幕上看到的那样)。我以异步方式这样做只是为了模拟从服务器检索数据 我遇到的问题是,当用户输入未注册的电子邮件地址时,尽管通过检查错误消息是否存在于我的表单对象中,错误消息会正确显示在UI上,但控制台也会记录一条错误消息:“TypeError:无法读取null的属性‘emailIsNotRegistered’” 这几乎就像承诺返回正确的键值对{'emailIsNotRegi

我已经为我的角度表单创建了一个异步自定义验证。验证器检查一系列电子邮件,以查看用户输入的电子邮件是否已注册(就像您在一般登录屏幕上看到的那样)。我以异步方式这样做只是为了模拟从服务器检索数据

我遇到的问题是,当用户输入未注册的电子邮件地址时,尽管通过检查错误消息是否存在于我的表单对象中,错误消息会正确显示在UI上,但控制台也会记录一条错误消息:“TypeError:无法读取null的属性‘emailIsNotRegistered’”

这几乎就像承诺返回正确的键值对{'emailIsNotRegistered':true},但随后也返回'null'

以下是自定义验证程序:

unregisteredEmail(control: FormControl): Promise<any> | Observable<any> {
  const promise = new Promise((resolve, reject) => {
    setTimeout(() => {
      if(this.registeredEmails.indexOf(control.value) === -1) {
        resolve({'emailIsNotRegistered': true})
      } else {
        resolve(null);
      }
    }, 1500)
  });
  return promise;
}
html中的电子邮件输入标记:

<input class="input" type="text" id="email" name="email" formControlName="email">
<input class="input" type="text" id="email" name="email" formControlName="email">
<span *ngIf="logInForm.get('email').errors['emailIsNotRegistered'] && logInForm.get('email').touched">No account found with this email address. Register below!</span>
registeredEmails = ['52pbailey@gmail.com', 'sammie-midnight@hotmail.co.uk'];