@Sergi0Limit

Как добавить директиву typeahead динамически?

Добрый день.
Мне нужно добавить динамически директиву https://angular-ui.github.io/bootstrap/#/typeahead внутри своей директивы по какому-то условию.
Для этого я использую $compile и строку с директивой
<input type="text" ng-model="asyncSelected" placeholder="Locations loaded via $http" uib-typeahead="address for address in getLocation($viewValue)" typeahead-loading="loadingLocations" typeahead-no-results="noResults" class="form-control" typeahead-show-hint="true">


var a = angular.element(document).find('asd');
    a.append($compile('<input type="text" ng-model="asyncSelected" placeholder="Locations loaded via $http" uib-typeahead="address for address in getLocation($viewValue)" typeahead-loading="loadingLocations" typeahead-no-results="noResults" class="form-control" typeahead-show-hint="true">')($scope));


поле ввода добавляется, но typeahead работает неполноценно. При вводе символов поиск происходит и даже есть какие-то результаты, но они не выпадают как обычно должны в виде dropdown списка. Навигация по скрытому списку также происходит (вверх/вниз)

Если эту же директиву использовать как обычно то и работает без проблем - dropdown появляется.

Demo: plnkr
В Demo два варианта:
1. через красную кнопку динамически добавляется директива typeahead, который не работает.
2. в коде страницы уже есть typeahead, который работает.

Виджет удобный и не хотелось бы менять его на что-то еще. Пробовал ui-select но он работате немного не так как мне нужно.
Какие есть варианты решения?
  • Вопрос задан
  • 250 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы