使用指定等待的angular-ui typeahead
<input type="text"
ng-model="selected"
uib-typeahead="state for state in states | filter:$viewValue | limitTo:8"
typeahead-focus-first="false"
typeahead-wait-ms="1000"
class="form-control">
我想在等待时间之前按下ENTER时取消等待而不显示输出。
这是一个可以玩的玩家: https://plnkr.co/edit/QkYumhmcDsXexHSLALsf?p=preview
例如,如果我输入&#34; a&#34;然后在经过1000ms之前按ENTER键,不应显示typeaheads菜单。
答案 0 :(得分:2)
感谢oFace模糊的想法,我提出了这个指令。
.directive('typeaheadCancelEnter', function () {
return {
restrict: 'A',
link: function ($scope, elem, attrs) {
elem.bind('keyup', function ($event) {
var element = $event.target;
var code = $event.keyCode || $event.which;
if (code == 13) { //Enter keycode
element.blur();
}
});
}
};
})
答案 1 :(得分:1)
快速修复 - 不是我害怕的棱角分明的方式,但是到底是什么:
HTML中的:
: 添加功能
$scope.blurme = function() {
// blur input field to cancel autosuggest after typeahead-wait-ms
var search_input = document.getElementById ('search-input');
search_input.blur ();
}