В Angular2, как я могу получить объект, который я возвращал в пользовательском валидаторе, когда он потерпел неудачу?
Допустим, у меня есть этот пользовательский валидатор, мне было интересно, есть ли способ использовать объект, который мы возвращаем, когда проверка не пройдена.
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
потому что я не вижу смысла возвращать объект, если мы не можем его использовать. Любое предложение?
1 ответ
Решение
Вы можете получить это от errors
свойство контроля:
errortMsg = this.myform.controls['password'].errors.validatePw