Проверить наличие валидаторов внутри настраиваемого реактивного компонента - PullRequest
0 голосов
/ 08 мая 2020

Внутри одного из моих компонентов формы, скажем MyParentFormComponent, мне нужно знать, какие валидаторы используются его родительским компонентом. Например,

const fc = new FormControl('', [Validators.email, Validators.required]);

Итак, в моем компоненте управления формой я хотел бы знать что эти два валидатора присутствуют. Причина в том, что этот пользовательский компонент from является оболочкой для других компонентов формы, поэтому я хотел бы передать эти валидаторы его дочерним элементам.

Итак, я попробовал:

export MyParentFormComponent implements OnInit, ControlValueAccessor {
    @Input() formControlName: string;

    constructor(@Optional() private controlContainer: ControlContainer) {}

    ngOnInit(): void {
        const control = this.controlContainer.control.get(formFieldName);
        const validators = control.validator(''); // problems!!!
    }
}

DEMO

Во-первых, функция control.validator не ожидает строку, в моей IDE я получаю следующее сообщение:

enter image description here

По-видимому, ему нужен AbstractControl. Но когда я исправляю эту ошибку следующим образом:

control.validator('' as any);

, он возвращает

{ required: true }

, он содержит только Validators.required. Всех остальных там нет.

Итак, у меня такое чувство, что это может быть неправильный путь для получения информации о валидаторах. Есть предложения, как мне получить этот список?

ОБНОВЛЕНИЕ: control.validator не свойство, а функция

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...