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