Как предоставить другой элемент управления значением доступа?

У меня уже есть директива, что реализует ControlValueAccessor интерфейс (селектор директивы input[type=date]) и мне нужно иметь другую директиву реализации ControlValueAccessor с селектором input[type=date][datepicker] - давайте назовем это директивой DatePicker.

Как вы можете видеть, селекторы этих директив перекрывают друг друга, и я получаю следующую ошибку, когда использую директиву datepicker:

ERROR Error: Uncaught (in promise): Error: More than one custom value accessor matches form control with unspecified name attribute

там выдается ошибка: https://github.com/angular/angular/blob/5.2.x/packages/forms/src/directives/shared.ts#L206

так что у меня есть идея, что, возможно, я мог бы как-то сказать angular, чтобы предоставить директиву datepicker, когда это возможно, но как это сделать?

1 ответ

Решение

Почему бы просто не поиграть с селекторами?

Первый будет

input[type=date]:not([datepicker])

И второй

input[type=date][datepicker]
Другие вопросы по тегам