Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根据angular form builder/group中其他字段的值,在一个字段上运行并设置验证错误_Angular_Angular7_Angular8 - Fatal编程技术网

根据angular form builder/group中其他字段的值,在一个字段上运行并设置验证错误

根据angular form builder/group中其他字段的值,在一个字段上运行并设置验证错误,angular,angular7,angular8,Angular,Angular7,Angular8,我希望自定义函数验证器同时在StartDate和EndDate上运行 组件技术 Createform(){ this.studentForm = formBuilder.group({ StartDate: ['', Validators.required, customFunction(), updateOn: "blur" ], EndDate: ['', null,customFunction(), updateOn: "blur" ], } 自定义函数 cus

我希望自定义函数验证器同时在StartDate和EndDate上运行

组件技术

Createform(){
this.studentForm = formBuilder.group({
      StartDate: ['', Validators.required, customFunction(), updateOn: "blur" ],
      EndDate: ['', null,customFunction(), updateOn: "blur" ],

}
自定义函数

customFunction(){
 if (EndDate <= startDate) {
          return of({ invalidDate: true });
        } 
      }  
      return of(null);
    };
}
customFunction(){
 if (EndDate <= startDate) {
         this.studentForm.form.controls['endDate'].setErrors({'invalidDate': true});;
        } 
      }  
      return of(null);
    };
}
在StartDate上运行时,它将CreateForm.controls['StartDate'].errors?.invalidDate设置为true。即使我在StartDate上运行函数,也可以在EndDate上设置此invalidDate吗


自定义函数正确运行,但当它在StartDate上运行时,它会在开始日期设置错误数组,但我希望在结束日期设置错误,这可能吗?

在自定义函数中,可以使用setErrors函数在不同字段上设置错误

自定义函数

customFunction(){
 if (EndDate <= startDate) {
          return of({ invalidDate: true });
        } 
      }  
      return of(null);
    };
}
customFunction(){
 if (EndDate <= startDate) {
         this.studentForm.form.controls['endDate'].setErrors({'invalidDate': true});;
        } 
      }  
      return of(null);
    };
}