Javascript 动态响应表单中的自定义验证器不工作

Javascript 动态响应表单中的自定义验证器不工作,javascript,angular,typescript,angular-reactive-forms,Javascript,Angular,Typescript,Angular Reactive Forms,我试图为开始时间和结束时间设置一个自定义验证器,但是错误没有显示在html中。我的动态表单中有开始日期、结束日期、开始时间和结束时间字段。当用户输入相同的开始和结束日期,且开始时间大于结束时间时,应显示该时间错误。为此,我设置了一个类似这样的自定义验证器 FormGroup Initiation。添加FormArray以动态推送新行 this.loadFilesForm = this.formBuilder.group({ addRemoveFormArray: this.formBui

我试图为开始时间和结束时间设置一个自定义验证器,但是错误没有显示在html中。我的动态表单中有开始日期、结束日期、开始时间和结束时间字段。当用户输入相同的开始和结束日期,且开始时间大于结束时间时,应显示该时间错误。为此,我设置了一个类似这样的自定义验证器

FormGroup Initiation。添加FormArray以动态推送新行

  this.loadFilesForm = this.formBuilder.group({
  addRemoveFormArray: this.formBuilder.array([
    this.formBuilder.group({
      searchType: new FormControl('any'),
      customFieldType: new FormControl(''),
      dynamicInputField: new FormControl(''),
      startDate: new FormControl(null, [Validators.required]),
      startTime: new FormControl(null,
        [Validators.pattern(/^((0?[1-9]|1[0-2]):[0-5][0-9] ?([APap][Mm]))$/), Validators.required]),
      endDate: new FormControl(null, [Validators.required]),
      endTime: new FormControl(null, [Validators.pattern(/^((0?[1-9]|1[0-2]):[0-5][0-9] ?([APap][Mm]))$/), Validators.required])
    })
  ])
});
在从下拉列表中选择日期输入时,我正在其中设置自定义验证功能

  onChangeSelect(rowIndex, item) {
    let loadFieldsTextArray = (<FormArray>this.loadFilesForm.get('addRemoveFormArray'));
   
    if (item === 'DATE') {
     loadFieldsTextArray.at(rowIndex).get('startTime').setValidators([this.startTimeValidator(rowIndex)])
    }
    /** Re-trigger validation for all fields */
    const loadFileTextArray = this.loadFilesForm.get('addRemoveFormArray') as FormArray;
    for (let control of loadFileTextArray.controls) {
      const grp = control as FormGroup;
      const val = (grp.controls.dynamicInputField as FormControl);
      val.updateValueAndValidity();
    }
  }
在HTML中,我显示如下错误

<div *ngIf="loadFilesForm.get(['addRemoveFormArray',rowIdx]).get('startTime').hasError('startError')">
                 Time error
</div>

时间误差

请让我知道我做错了什么,我还尝试在html中设置函数并返回error true false,但这也不起作用。

你检查过官方文档了吗?
<div *ngIf="loadFilesForm.get(['addRemoveFormArray',rowIdx]).get('startTime').hasError('startError')">
                 Time error
</div>