При добавлении custom валидации FormGroup ломается и равняется undefined
У меня есть стандартная форма, в которой я провожу валидацию, и валидация по дефолту работает отлично, но теперь у меня стоит задача добавить custom валидацию. У меня в форме есть поля from и to, которые являются числами, и мне нужно добавить валидацию, чтобы число from было меньше числа to. Я это рeализовал таким образом:
private fillForm(){
this.form = new FormGroup({
id: new FormControl(this.sensor.id),
name: new FormControl(this.sensor.name, [Validators.required, Validators.maxLength(30)]),
model: new FormControl(this.sensor.model, [Validators.required, Validators.maxLength(15)]),
range_from: new FormControl(this.sensor.range_from, [Validators.required]),
range_to: new FormControl(this.sensor.range_to, [Validators.required]),
type: new FormControl(this.sensor.type, [Validators.required]),
unit: new FormControl(this.sensor.unit, [Validators.required]),
location: new FormControl(this.sensor.location, [Validators.required, Validators.maxLength(40)]),
description: new FormControl(this.sensor.description, [Validators.required, Validators.maxLength(200)])
})
}
И функция валидации, которая лежит вне класса:
function checkRange(to: number): ValidatorFn{
return (control: AbstractControl): {[key: string] : boolean} | null => {
if (control.value !== undefined && (isNaN(control.value)) && control.value >= to){
return {'invalidRange': true}
}
return null;
}
}
Пока я не добавляю эту функцию в валидаторы, вся валидация работает отлично, но как только я ее добавляю, появляется проблема и я получаю кучу ошибок, FormGroup undef и вообще валидация не работает.
range_from: new FormControl(this.sensor.range_from, [Validators.required, checkRange(this.form.value.range_to)]),
