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