角度bootstrap typeahead关闭选择

时间:2015-04-14 11:27:12

标签: javascript angularjs angular-ui-bootstrap angular-ui-typeahead

我希望在提交表单时使用不在列表中的值(使用typeahead-focus-first)来关闭选择列表。我使用typeahead plunker示例作为起点。

当用户点击enter时,会触发storeItem函数,但列表不会关闭。

<form ng-submit="storeItem()">
  <input type="text"
    typeahead="state for state in states | filter:$viewValue | limitTo:8" 
    typeahead-focus-first="false"/>
</form>

提交功能:

$scope.storeItem = function() {
   $scope.selected = Date.now();
};

查看完整的plunker here

如何在保持输入值和列表完整的同时关闭列表?

1 个答案:

答案 0 :(得分:1)

好像你发现了一个错误。感兴趣的区域在typeahead指令中 - element.bind(&#39; keydown&#39;方法。当按下enter或tab并且没有选择任何内容时,有逻辑关闭下拉列表:

// if there's nothing selected (i.e. focusFirst) and enter is hit, don't do anything
if (scope.activeIdx == -1 && (evt.which === 13 || evt.which === 9)) {
  return;
}

输入元素失去焦点,弹出窗口不会关闭。您应该在repo上打开一个问题。