Angular UT Bootstrap - Popup Datepicker

Я хотел бы иметь всплывающее окно datepicker, нажав кнопку, используя компоненты библиотеки Angular UI Bootstrap. Есть примеры как на Angular сайте UI Boostrap, но я не вижу способа их комбинировать. Мне не нравится идея размещения Datepicker div в качестве значения атрибута для текста директивы popup.

Я также пытался использовать ng-show в Datepicker div, но я тоже не могу работать.

Вот код, который у меня есть на данный момент.

<div ng-controller="DatepickerCtrl" class="input-append">
        <input class="input-small ng-pristine ng-valid" 
                type="text" 
                ng-value="dt" />
        <button type="button" 
                class="btn" 
                popover-placement="right"
                ng-click"showDatePicker=true"      // the show when clicked strategy
                popover="On the Right!">           // Don't see a way to make this encapsulate a div
                    <i class="icon-calendar"></i>
        </button>
        <datepicker ng-model="dt"
                    ng-show="showDatePicker"  
                    starting-day="1"
                    date-disabled="disabled(date, mode)"
                    min="minDate" max="'2015-06-22'">
        </datepicker>
 </div>

Мне не очень нравится стратегия ng-show. Скорее бы это был попутчик, но я полагаю, что есть способы сделать это лучше, поэтому я тоже не против.

Ответ 1

Обновление 2015-08-16 - Начиная с Angular UI Bootstrap 0.13.0 эта функция включена! Он очень похож на то, что я описал ниже. Чтобы использовать эту функцию, добавьте popover-template="'mytemplate.html'" к элементу, к которому вы хотите применить popover.

Я создал новый пример, показывая эту функцию в действии.


Начиная с 2013-07-02 существует открытая проблема с проектом Angular UI Bootstrap, чтобы вы могли поместить HTML-разметку внутри popover.

Если/, когда это изменение будет объединено, вы сможете поместить шаблон datepicker внутри шаблона, а затем ссылаться на этот шаблон, добавив popover-template="mytemplate.html" к элементу, который вы объявили popover.

В качестве примера этой функции вы можете увидеть Plunker, который я недавно разветкил.

Я обновлю этот ответ, когда ситуация изменится.

ИЗМЕНИТЬ

Если вы чувствуете себя авантюрно, то код, который я использовал, основан на Pull Request 369, что приведет к этот коммит.

Есть три причины, по которым я знаю, почему коммит еще не был объединен:

  • Там область, которую нужно очистить, когда разрушена родительская область. Это упоминается в комментарии, сделанном Павелом Козловским в связи, которую я связал.
  • Открытие, закрытие и повторное открытие popover вызывает привязку к разрыву области, когда popover снова открывается. Я опубликовал обходное решение для этого в Issue 220 (эта же проблема была связана выше).
  • Пока еще нет тестов.

Я могу попытаться найти какое-то время в эти выходные, чтобы работать над этими проблемами, чтобы его можно было объединить в проект.