在 Angular2 中,如何在自定义验证器失败时获取我在 return 中执行的对象?
In Angular2 how can I get the object I did return in a custom validator when it failed?
假设我有这个自定义验证器,我想知道是否有办法在验证失败时使用我们 return 的对象。
export class PasswordValidator{
private static min:number = 3;
private static max:number = 32;
static setMin(n:number){ PasswordValidator.min = n; }
static setMax(n:number){ PasswordValidator.max = n; }
static validatePw(ctrl:FormControl){
let err:number = 0;
let pw = ctrl.value;
err += pw.length < PasswordValidator.min ? 1 : 0;
err += pw.length > PasswordValidator.max ? 1 : 0;
err += (/([a-z\-]*[A-Z].*[\d][a-z\-]*)|([a-z\-]*[\d].*[A-Z][a-z\-]*)/).test(pw) ? 0 : 1;
return err > 0 ? {validatePw:"it is a valid goHenry password"} : null;
}
}
例如(在主组件中):
errortMsg = this.myform.controls['password'].validatePw
因为我看不到 return 一个对象的意义,如果我们不能使用它的话。
有什么建议吗?
可以从控件的errors
属性获取:
errortMsg = this.myform.controls['password'].errors.validatePw
假设我有这个自定义验证器,我想知道是否有办法在验证失败时使用我们 return 的对象。
export class PasswordValidator{
private static min:number = 3;
private static max:number = 32;
static setMin(n:number){ PasswordValidator.min = n; }
static setMax(n:number){ PasswordValidator.max = n; }
static validatePw(ctrl:FormControl){
let err:number = 0;
let pw = ctrl.value;
err += pw.length < PasswordValidator.min ? 1 : 0;
err += pw.length > PasswordValidator.max ? 1 : 0;
err += (/([a-z\-]*[A-Z].*[\d][a-z\-]*)|([a-z\-]*[\d].*[A-Z][a-z\-]*)/).test(pw) ? 0 : 1;
return err > 0 ? {validatePw:"it is a valid goHenry password"} : null;
}
}
例如(在主组件中):
errortMsg = this.myform.controls['password'].validatePw
因为我看不到 return 一个对象的意义,如果我们不能使用它的话。 有什么建议吗?
可以从控件的errors
属性获取:
errortMsg = this.myform.controls['password'].errors.validatePw