Я пытаюсь реализовать пользовательский валидатор для моей Angular 9 формы. Проверка немного сложна.
Поскольку пара полей зависит от выбора выбранного входа.
Например, если я выбираю один из моих вариантов выбора, требуется поле формы 3.
Но если я выберу второй вариант, потребуется поле формы 5.
Вот почему я написал собственный валидатор:
export class FormComponent {
public form: FormGroup = new FormGroup({
...
selectField: new FormControl(null, [Validators.required]),
...
formField3: new FormControl(null, [this.validatorArtAende]),
formField4: new FormControl(),
formField5: new FormControl(null, [this.validatorArtAender])
});
validator (control: AbstractControl) => {
if (this.form.value.selectField === 'option1' && control.value.length === 0) {
return { required: true };
}
return null;
}
}
Проблема в том, что this.form unknwon (Невозможно прочитать свойство 'form' из undefined). Так есть ли возможность передать форму или значение другого элемента управления в пользовательский валидатор?