Javascript 如何在angular上向反应表单添加特定验证
我试图根据特定的错误呈现一个div,我的表单可以工作,但是有bug,并且出现了类型错误,“undefined不是一个对象”,我不明白为什么;有人能帮我理解我错过了什么吗?我已经尝试通过使用.errors属性来简化我的代码,它可以消除错误,但不够具体,因此它不知道根据表单的状态呈现什么错误,任何细节都会非常有用:) HTML 自定义验证器.TSJavascript 如何在angular上向反应表单添加特定验证,javascript,html,angular,typescript,Javascript,Html,Angular,Typescript,我试图根据特定的错误呈现一个div,我的表单可以工作,但是有bug,并且出现了类型错误,“undefined不是一个对象”,我不明白为什么;有人能帮我理解我错过了什么吗?我已经尝试通过使用.errors属性来简化我的代码,它可以消除错误,但不够具体,因此它不知道根据表单的状态呈现什么错误,任何细节都会非常有用:) HTML 自定义验证器.TS import { AbstractControl, ValidationErrors, } from '@angular/forms'; export
import { AbstractControl, ValidationErrors, } from '@angular/forms';
export class CustomValidators {
static passwordValidator(control: AbstractControl): Promise<ValidationErrors | null> {
return new Promise((resolve, reject) => {
setTimeout(() => {
if (control.value === "123") {
resolve({ passwordValidator: true })
}
resolve(null)
}, 2000);
});
}
}
从'@angular/forms'导入{AbstractControl,ValidationErrors,};
导出类CustomValidator{
静态密码验证器(控件:AbstractControl):Promise{
返回新承诺((解决、拒绝)=>{
设置超时(()=>{
如果(control.value==“123”){
解析({passwordValidator:true})
}
解析(空)
}, 2000);
});
}
}
您有一些问题
,从加载…
表单中删除
s
import { Component } from '@angular/core'; import { FormBuilder, Validators, FormGroup, FormControl,} from '@angular/forms' import { CustomValidators } from '../passwordValidator'; @Component({ selector: 'app-form', templateUrl: './form.component.html', styleUrls: ['./form.component.css'] }) export class FormComponent { form = new FormGroup({ oldPassword: new FormControl('',Validators.required, CustomValidators.passwordValidator), newPassword: new FormControl('',Validators.required), confirmPassword: new FormControl('',Validators.required) }) onClick() { console.log(this.form.get('oldPassword').errors) } } //CustomValidators.passwordValidator
import { AbstractControl, ValidationErrors, } from '@angular/forms'; export class CustomValidators { static passwordValidator(control: AbstractControl): Promise<ValidationErrors | null> { return new Promise((resolve, reject) => { setTimeout(() => { if (control.value === "123") { resolve({ passwordValidator: true }) } resolve(null) }, 2000); }); } }