如何在按键时取消 typeahead-wait-ms
How to cancel typeahead-wait-ms on key press
使用 angular-ui 指定等待时间的提前输入
<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 时不显示预输入。
这里有一个 plunker 可以玩:
https://plnkr.co/edit/QkYumhmcDsXexHSLALsf?p=preview
因此,例如,如果我输入 "a",然后在 1000 毫秒结束前按 ENTER,则不应显示预输入菜单。
快速修复 - 不是我担心的 angular 方式,但到底是什么:
在HTML中:
- 为您的输入字段指定一个 ID - 例如:search_input
- 添加一个 ng-enter="blurme()"
在您的 TypeaheadCtrl 中:
添加功能
$scope.blurme = function() {
// blur input field to cancel autosuggest after typeahead-wait-ms
var search_input = document.getElementById ('search-input');
search_input.blur ();
}
多亏了 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();
}
});
}
};
})
使用 angular-ui 指定等待时间的提前输入
<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 时不显示预输入。
这里有一个 plunker 可以玩: https://plnkr.co/edit/QkYumhmcDsXexHSLALsf?p=preview
因此,例如,如果我输入 "a",然后在 1000 毫秒结束前按 ENTER,则不应显示预输入菜单。
快速修复 - 不是我担心的 angular 方式,但到底是什么:
在HTML中:
- 为您的输入字段指定一个 ID - 例如:search_input
- 添加一个 ng-enter="blurme()"
在您的 TypeaheadCtrl 中: 添加功能
$scope.blurme = function() {
// blur input field to cancel autosuggest after typeahead-wait-ms
var search_input = document.getElementById ('search-input');
search_input.blur ();
}
多亏了 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();
}
});
}
};
})