2

是否可以将单个验证器添加到 formGroup,只要 formGroup 中的单个值发生更改,就会调用该验证器?

我认为它应该是这样的:

'group': this.formBuilder.group({
    'value1': [''],
    'value2': [''],
    'value3': ['']
  }, [MyCustomValidator]),

但是不会在 formGroup 内部发生的更改时调用验证器,...我可以将验证器单独添加到每个字段,然后调用control.parent(正在工作),但这似乎不是一个合适的解决方案。

4

2 回答 2

2

以这种使用验证器的方式,每次 value1 和 value2 改变它们的值时都会触发它:

 this.fb.group({
            value1: ['', [this.validateService.isNumber]],
            value2: ['', [this.validateService.isNumber, this.validateService.isLessThanHundred]],
        }, { validator: this.validateService.countInputs });

笨蛋

于 2017-08-25T15:03:11.143 回答
0

您可以从角度使用 OnChanges 接口。

ngOnChanges(changes: SimpleChanges){
    // call the validation method
    // this.formBuilder.group.valid property 
}

有关更多详细文档,请单击此处或从此处 使用 AfterViewChecked

ngAfterViewChecked() {
 this.formBuilder.group.valueChanges.subscribe(()=> {
    //do whatever you want; eg: enable the save or update button
 });
}

请单击此处获取角度生命周期挂钩。

于 2017-08-25T14:46:37.310 回答