В 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
Другие вопросы по тегам