Меня попросили разработать пользовательский указатель даты и времени с угловым значением.
Моей первой мыслью было разработать пользовательский компонент, который бы имел текстовый элемент с одним типом ввода и div, который был бы невидимым (этоdiv будет содержать кнопки календаря, часов, отмены и применения).
Когда пользователь фокусируется на вводе, появляется div, затем пользователь выбирает дату и время, а затем нажимает кнопку, чтобы снова применить скрытие div и, наконец, ввод получаетзначения, выбранные пользователем.
Моя проблема здесь в том, как конечный пользователь этого компонента получает свою дату и значения времени?
Я думал реализовать выходной параметр и затем прослушать его, ноэто не кажется элегантным решением.
И другая проблема будет, если конечный пользователь захочет стилизовать ввод.Он не будет форматировать ввод сам, но все компоненты, которые я предполагаю ...
Я бы предпочел разработать реализацию, которая бы использовала директиву, так как я мог бы манипулировать вводомсамо значение, и тогда конечный пользователь просто привязывается к свойству значения.Но для моего понимания директивы не могут иметь шаблонов ...
Подскажите, пожалуйста, какое было бы лучшее решение этой концептуальной проблемы?
Спасибо
------------------------------------------------------------------------------- Добавлено 11/12/18
Я сначала взглянул на оба подхода, идля моего понимания они кажутся очень похожими, хотя ни то, ни другое не достигает того, чего я хочу.Я постараюсь объяснить себя лучше.Я создаю новый компонент, который состоит из N HTML-элементов.
Но входной является основным, и я бы хотел, чтобы его можно было стилизовать снаружи, как обычный элемент HTML.<my-component class="form-control">
, так как остальная часть компонента - это календарь, который будет выглядеть всегда одинаково, несмотря ни на что.
Еще одна вещь, которую я хотел бы сделать и которая возможна с помощью директивы, - это прямой доступ к свойству value.Сейчас я выполняю это как <my-component [(value)]="date">
Я очень новичок в ангуляторе, поэтому мне жаль, если я упускаю что-то очевидное.
Спасибо