在 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