2016-08-03 52 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

我相信這不是一個好主意。因爲在我的應用程序中,我需要驗證模糊上的所有字段。所以像這樣寫每個領域的驗證是複雜的,我認爲不是很好的實踐。尋找其他答案。 –

相關問題