Иногда нам нужно использовать существующий элемент для управления формы, а не создавать лишнюю обертку для доступа к значению. Один из частых случаев — создание пользовательских компонентов ввода. Следующее изображение описывает нашу цель: Мы хотим использовать элементы управления формы, переданные через директивы formControl, formControlName или ngModel, в нашем пользовательском компоненте ввода и перенаправить их на внутренний элемент ввода. Давайте рассмотрим два способа, как это можно сделать: Первый вариант — использовать NodeInjector и получить ссылку на наш элемент управления, используя провайдер NgControl: Однако это не сработает, потому что возникнет ошибка циклической зависимости. Эту проблему можно решить, удалив провайдер, внедрив NgControl и явно установив свойство valueAccessor в значение noop (то есть, не выполняющее никаких действий), так как нас не интересует само значение, нам просто нужно "удовлетворить" Angular. Теперь мы можем использовать это в нашем компоненте вв
Перенаправление элементов управления формы в пользовательские компоненты управления в Angular
1 августа 20241 авг 2024
7
1 мин