См. Plunker: http://plnkr.co/edit/hsxYC2KPsf7S3non34Cy.Невозможно получить typeahead-on-select, работающий с Угловым UT Bootstrap
HTML:
<input type="text" ng-model="result" typeahead="suggestion for suggestion in cities($viewValue)" typeahead-on-select="onSelect($item)">
JavaScript:
$scope.cities = function(cityName) {
$scope.city = cityName.split(" ");
// $timeout emulates an async call to a server.
return $timeout(function() {
switch ($scope.city[0]) {
case 'N':
return {cand: ["New"]};
case 'New':
return {cand: ["New Albany", "New York"]};
default:
return {cand: ["<no match>"]};
}
}, 1000).then(function(res) {
return res.cand;
});
};
$scope.onSelect = function($item) {
$scope.cities($item);
};
Give 'N' в качестве входных данных, подождите 1 сек. Появится список типа head, выберите «New» (Состояние A). Список исчезает, новых предложений нет. Нажмите пробел, пока нет списка типов.
Демонстрация необходимого поведения: укажите «Новый» в качестве входного сигнала. Список typeahead появляется с «New Albany» и «New York» для выбора. Я хочу видеть тот же список в State A.
В режиме type-head-on-select с истинным сервером я могу получить сервер для отправки нового списка («New Albany» и «New York») но проблема в том, что угловой просто не отображает список.
Да, он делает то, что я хотел - за исключением того, что, видя, что сейчас в действии, требуется настройка (чтобы остановить всплывающее отображение все время). Что-то вроде спрятать '.dropdown-menu' перед' $ render() ', а затем снова показывать его, если пользователь редактирует ввод (добавляет пробел). Какой был бы самый простой (самый угловатый) способ сделать это? – masa
У меня нет времени, чтобы отсортировать этот последний бит, извините. Возможно, вы захотите задать другой вопрос. –