Я работаю с Angular реактивными формами. В моем сценарии валидаторы динамически добавляются в мои элементы управления.
Это делается следующим образом:
const myControl = myFormGroup.get('myControl');
if (myControl.validator) {
myControl.setValidators([ myControl.validator, Validators.required ]); //preserve existing validators
} else {
myControl.setValidators([ Validators.required ]);
}
Это работает просто отлично.
Проблема
Мне также нужен способ удалить указанный c валидатор при сохранении остальных.
myControl.validators
возвращает только функцию, но не массив валидаторы, которые делают невозможным выбрать один для удаления, оставляя другие.
Я знаю, что есть обходные пути, такие как отслеживание существующих валидаторов elswhere, et c. Мой вопрос, однако, заключается в следующем: может ли это быть достигнуто непосредственно на AbstractControl
?
Следующая проблема на Github обсуждает проблему: https://github.com/angular/angular/issues/13461
Решения, предоставленные там кажется, не работает для меня, так как мне приходится иметь дело не только с требуемым валидатором, но и с многочисленными пользовательскими валидаторами.
Заранее благодарен за любые подсказки или решения для этого!
Ура, Майк