Validation 使用验证服务进行验证

Validation 使用验证服务进行验证,validation,angular,Validation,Angular,我有一个部分模型驱动部分模板驱动的表单,我想使用自定义逻辑验证其中一个输入。问题是,控件处于无效状态,即使验证返回为有效。我做错了什么 <span *ngIf="identityNumber.touched && !identityNumber.valid">invalid</span> publicstaticvalidateIdentityNumber(控件:控件){ 让val:string=control.value; 如果(val&&val.l

我有一个部分模型驱动部分模板驱动的表单,我想使用自定义逻辑验证其中一个输入。问题是,控件处于无效状态,即使验证返回为有效。我做错了什么

<span *ngIf="identityNumber.touched && !identityNumber.valid">invalid</span>

publicstaticvalidateIdentityNumber(控件:控件){
让val:string=control.value;
如果(val&&val.length==11){
返回null;
}否则{
返回{“invalidIdentityNumber”:true};
}
}

即使键入11个字符,它也显示为“无效”


(我知道有一个长度验证器,这是为了示例)

如果您想通过多个验证器,请使用
验证器。编写

identityNumber: ['', 
    Validators.compose([
        Validators.required, 
        ValidationService.validateIdentityNumber
    ])
]

(第三个参数用于异步验证程序)

如果要通过多个验证程序,请使用
验证程序。编写

identityNumber: ['', 
    Validators.compose([
        Validators.required, 
        ValidationService.validateIdentityNumber
    ])
]
(第三个参数用于异步验证器)

identityNumber: ['', 
    Validators.compose([
        Validators.required, 
        ValidationService.validateIdentityNumber
    ])
]