在Angular2中,如何在失败时获取我在自定义验证器中返回的对象?

时间:2016-07-11 14:50:39

标签: angular custom-validators

我们说我有这个自定义验证器,我想知道是否有办法在验证失败时使用我们返回的对象。

@echo off
setlocal enabledelayedexpansion
set count=0
set "string=some substrings with variable lengths separated by space"
for %%a in (%string%) do (
  set /a count+=1
  set substring[!count!]=%%a
)
set substring[

例如(在主要组件中):

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;

    }

}

因为如果我们无法使用它,我就不会看到返回对象的重点。 有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您可以从控件的errors属性中获取它:

errortMsg = this.myform.controls['password'].errors.validatePw