2017-06-12 29 views
0

我有一個窗體使用FormGroupangular 2 FormGroup添加驗證器以存在數據控件

我想驗證添加到包含數據的一些控制

我想這(用戶輸入數據並點擊「查詢」按鈕後):

this.fg.controls['someKey'].setValidators([Validators.required]); 

this.fg.controls['someKey'].updateValueAndValidity(); 

但它從控制清除數據。

有什麼想法?

+0

嗯......你能創造一個基於這個小小的信息離子我無法重現該問題... – Alex

+0

點擊我進行自定義驗證https://stackoverflow.com/a/38092249/5868331 – mayur

回答

0

你可以設置一個這樣的驗證器。試試這個

formBuilder

this.fg = this.formBuilder.group(
    exampleGroup: this.formBuilder.group({ 
         checkboxInput: [false], 
         textinput: [''], 
        }, {validator: this.requiredIfChecked}), 
    } 

自定義驗證功能

requiredIfChecked(control: AbstractControl): void { 
      const input = control.get('textInput').value; 
      const inputCheckbox = control.get('checkboxInput').value; 
      control.get('textinput').setValidators([]); 
      if (inputCheckbox) { 
       if (input === '' || input === null) { 
        control.get('textInput').setValidators([Validators.required]); 
       } 
      } 
     } 

,你也可以做到這一點第二種方式看DEMO

相關問題