0

我想在这样的自定义验证器中将变量作为参数传递

    newSimulation: new FormControl('', [uniqNameValidator(this.options)])

然后在我的自定义验证器中使用它

export function uniqNameValidator(list: any): ValidatorFn {
  return (control: AbstractControl): ValidationErrors | null => {
    const simulationFlatList = list.map(val => val.closingPeriodSimulationName)
    return simulationFlatList.indexOf(control.value) > -1 ? { message: "simulation exists" } : null;
  }
}

问题是它this.options总是空的。我将其初始化为[],但当用户与表单(第一个字段)交互时,我将其更新为字符串数组,我认为自定义验证器不会重新检查this.options? 在这种情况下,如何在自定义验证器中传递变量?

4

1 回答 1

0

这可能有效,将功能绑定到组件,newSimulation: new FormControl('', [uniqNameValidator.bind(this)])然后在您可以访问的功能中this.options

于 2021-05-27T17:02:46.260 回答