2016-07-11 3 views
0

私はこのカスタムバリデータを持っているとしましょう、検証が失敗したときに返すオブジェクトを使用する方法があるかどうか疑問に思っていました。例えば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 
関連する問題