我希望在提交表单时使用不在列表中的值(使用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
如何在保持输入值和列表完整的同时关闭列表?
答案 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上打开一个问题。