在模糊或任何其他事件上验证 angular2 控制
Validating angular2 control on blur or any other event
我正在 Angular2 中验证表单,我使用默认验证器和一些自定义验证函数来验证。我还从服务器实现了异步验证。现在的问题是,它正在验证对更改事件的控制并执行 ajax 请求该控件上的每个按键。我期待执行那个 ajax 请求以在该控件的模糊上执行。
有什么方法可以控制该控件的验证吗?或对模糊或任何其他事件执行验证?
如果您想手动控制验证,可以使用 setErrors
of class AbstractControl
(我假设您使用的是模型驱动或参考了 FormControl在你的组件中)。
所以,不要将 Validator 函数硬编码到您的表单初始化中
this.userNameFormControl = this.formBuilder.control(""/*, Validators.required*/);
相反,订阅您的自定义事件并手动验证控件:
validateUserName() {
let validationResult = Validators.required(this.userNameFormControl);
if (validationResult) {
this.userNameFormControl.setErrors(validationResult);
}
}
注意:这些代码行未经测试。
我正在 Angular2 中验证表单,我使用默认验证器和一些自定义验证函数来验证。我还从服务器实现了异步验证。现在的问题是,它正在验证对更改事件的控制并执行 ajax 请求该控件上的每个按键。我期待执行那个 ajax 请求以在该控件的模糊上执行。
有什么方法可以控制该控件的验证吗?或对模糊或任何其他事件执行验证?
如果您想手动控制验证,可以使用 setErrors
of class AbstractControl
(我假设您使用的是模型驱动或参考了 FormControl在你的组件中)。
所以,不要将 Validator 函数硬编码到您的表单初始化中
this.userNameFormControl = this.formBuilder.control(""/*, Validators.required*/);
相反,订阅您的自定义事件并手动验证控件:
validateUserName() {
let validationResult = Validators.required(this.userNameFormControl);
if (validationResult) {
this.userNameFormControl.setErrors(validationResult);
}
}
注意:这些代码行未经测试。