是否可以向formGroup添加一个验证器,只要formGroup中的单个值发生更改,就会调用该函数?
我认为它应该是这样的:
'group': this.formBuilder.group({
'value1': [''],
'value2': [''],
'value3': ['']
}, [MyCustomValidator]),
但是在formGroup内发生的更改时没有调用验证器,...我可以单独将验证器添加到每个字段,然后调用control.parent
(这是有效的),但这似乎不就像一个合适的解决方案。
答案 0 :(得分:1)
通过这种使用验证器的方式,每当value1和value2更改其值时,它就会被触发:
this.fb.group({
value1: ['', [this.validateService.isNumber]],
value2: ['', [this.validateService.isNumber, this.validateService.isLessThanHundred]],
}, { validator: this.validateService.countInputs });
答案 1 :(得分: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
});
}
请点击here以获取角度生命周期挂钩。