angular 2 FormGroup将验证器添加到存在的数据控件中

时间:2017-06-12 06:43:35

标签: angular typescript angular2-forms

我有一个使用 FormGroup 的表单。

我想在一些包含数据的控件中添加验证器(在用户输入数据并点击“检查”按钮之后)。

我试过了:

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

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

但它会清除控件中的数据。

有什么想法吗?

1 个答案:

答案 0 :(得分: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