我想在像这样的自定义验证器中传递一个变量作为参数
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
的值?在这种情况下,如何在自定义验证器中传递变量?
这可能会起作用,将函数绑定到组件newSimulation: new FormControl('', [uniqNameValidator.bind(this)])
,然后在函数中可以访问this.options