2016-08-03 93 views
2

我正在验证Angular2中的表单,我使用了默认验证器和一些自定义验证函数进行验证。此外,我从服务器实施异步验证。现在的问题是,它正在验证对change事件的控制,并在该控件的每个按键上执行一个jax请求。我希望执行该ajax请求在模糊的控制上执行。在模糊或任何其他事件上验证angular2控件

有什么办法来控制该控件的验证?或对模糊或任何其他事件执行验证?

回答

0

如果你想手动控制验证,你可以使用setErrorsAbstractControl(我假设你正在使用模型驱动或在组件中使用FormControl的引用)。

所以,千万不要硬编码的验证功能,以您的形式开始

this.userNameFormControl = this.formBuilder.control(""/*, Validators.required*/); 

相反,订阅您的自定义事件,并手动验证控制:

validateUserName() { 
    let validationResult = Validators.required(this.userNameFormControl); 
    if (validationResult) { 
    this.userNameFormControl.setErrors(validationResult); 
    } 
} 

注:这些代码线没有经过测试。

+0

我相信这不是一个好主意。因为在我的应用程序中,我需要验证模糊上的所有字段。所以像这样写每个领域的验证是复杂的,我认为不是很好的实践。寻找其他答案。 –