考虑具有两个日期控件的表单。例如,FirstDate和LastDate。 表单需要使用反应性表单进行设计。两个控件均具有3个验证。 1)应该是日期。 2)日期不得早于当日的30天。 3)FirstDate应该在LastDate之前。
我正在尝试使用formcontrol验证来处理前两个验证。最后是使用FormGroup验证的比较验证。
test1.h
我正在验证formControl,以使用自定义验证器$ ./bin/main1
second: 1
检查所选日期是否在30天之前。
datesFormGroup: this.formBuilder.group(
{
firstDateCtrl: ['', [Validators.required,validateRange]],
lastDateCtrl: ['', [Validators.required,validateRange]],
},
{ validator: validateDateForm }
)
此外,我有自定义验证器validateRange
来比较两个日期,并检查第一个日期是否在最后一个日期之前。
validateRange(dateControl: AbstractControl){
if(!dateControl.errors){
....
dateControl.setError({range:true})
}
}
在调试了此代码段之后,我发现validateDateForm
中的dateControl具有比较错误。这是否意味着validateDateForm((dateForm: FormGroup) ){
if(!dateControl.errors){
...
....
...
check and set error
dateGroup.controls.firstDate.setErrors({ compare: true });
}
}
在validateRange
之前执行。
FormGroup验证是否在FormControl验证之前执行?