Angular 角度自定义验证器高亮显示字段,但不设置<;输入>';残疾

Angular 角度自定义验证器高亮显示字段,但不设置<;输入>';残疾,angular,Angular,我有一个使用自定义验证器的角度表单。使用无效值时,它会正确地以红色突出显示字段,但使用@ViewChildren访问输入时,它会错误地显示为有效 如何获取由验证器设置的的的有效性 我的验证器代码是 @指令({ 选择器:“[appThreeDigitsDecimalMax10]”, 提供者:[{提供:NG_验证器,使用现有的:ThreeDigitDecimalMax10ValidatorDirective,multi:true}] }) 导出类ThreeDigitsDecimalMax10Vali

我有一个使用自定义验证器的角度表单。使用无效值时,它会正确地以红色突出显示字段,但使用@ViewChildren访问输入时,它会错误地显示为有效

如何获取由验证器设置的的的有效性

我的验证器代码是

@指令({
选择器:“[appThreeDigitsDecimalMax10]”,
提供者:[{提供:NG_验证器,使用现有的:ThreeDigitDecimalMax10ValidatorDirective,multi:true}]
})
导出类ThreeDigitsDecimalMax10Validator指令实现验证器{
@输入('AppThreeDigitDecimalMax10')AppThreeDigitDecimalMax10:string;
验证(控件:AbstractControl):{[key:string]:any}空{
如果(!this.appThreeDigitsDecimalMax10){
返回null;
}
如果(!control.value | | isNaN(control.value)){
返回{nan:true,valid:false};
}
如果(control.value>=0&&control.value<10){
返回null;
}
否则{
返回{outofrange:true,valid:false};
}
}
}
当我运行并输入12时,应该失败,它会像预期的那样高亮显示红色

我的HTML

然后当我抓取输入时,
@ViewChildren('gridInput')inputViewChildren!:查询列表
并将它们打印出来
this.inputViewChildren.forEach(input=>{console.log('input',input);…
,输入的有效性以某种方式显示为true

为什么输入的有效性是真的?如何通过编程检查验证程序正确设置的状态,从而检查输入上的红色突出显示


提前感谢!

lemme大胆建议避免使用基于模板的角度表单。反应式表单技术需要更多的时间来掌握,而且它的功能更强大、更灵活。我永远不会建议使用模板表单来生产此方面的任何解决方案?尽管不推荐使用此方法?不要将角度验证与内置I混淆n本地webvalidation@yurzui我不明白?