Javascript 清除角度引导typeahead中的选定输入

Javascript 清除角度引导typeahead中的选定输入,javascript,jquery,angularjs,twitter-bootstrap,bootstrap-typeahead,Javascript,Jquery,Angularjs,Twitter Bootstrap,Bootstrap Typeahead,我使用的是一个简单的数组查找示例 当我清空input字段并按enter键时,我想触发list()。目前,我可以编写另一个Clear按钮来执行此操作。但是当输入为空时,如何允许按键?我希望用户从列表中选择或仅清除它。不应该有其他价值观 HTML <!doctype html> <html ng-app="plunker"> <head> <script src="http://ajax.googleapis.com/ajax/libs/angular

我使用的是一个简单的数组查找示例

当我清空
input
字段并按enter键时,我想触发
list()
。目前,我可以编写另一个
Clear
按钮来执行此操作。但是当输入为空时,如何允许按键?我希望用户从列表中选择或仅清除它。不应该有其他价值观

HTML

<!doctype html>
<html ng-app="plunker">

<head>
  <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.js"></script>
  <script src="http://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.10.0.js"></script>
  <script src="example.js"></script>
  <link href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet">
</head>

<body>

  <script type="text/ng-template" id="customTemplate.html">
    < a > < img ng - src = "http://upload.wikimedia.org/wikipedia/commons/thumb/{{match.model.flag}}"
    width = "16" > < span bind - html - unsafe = "match.label | typeaheadHighlight:query" > < /span>
  </a >
  </script>
  <div class='container-fluid' ng-controller="TypeaheadCtrl">

    <h4>Static arrays</h4>
    <pre>Model: {{selected | json}}</pre>
    <input type="text" typeahead-on-select="list()" ng-model="selected" typeahead="state for state in states | filter:$viewValue | limitTo:8" class="form-control">
    <button ng-click="clear()">Clear</button>
  </div>
</body>

</html>

提前键入的目的是提示可能的选择,但也允许不选择(默认情况下)。您试图做的基本上只是一个选择框:

$scope.testAllowed = function( evt ){
    if( evt.keyCode === 13 && 
        $scope.selected && 
        $scope.states.indexOf( $scope.selected ) < 0){

      $scope.selected = '';
    }
  }

<select ng-options='state for state in states'></select>
$scope.testAllowed = function( evt ){
    if( evt.keyCode === 13 && 
        $scope.selected && 
        $scope.states.indexOf( $scope.selected ) < 0){

      $scope.selected = '';
    }
  }
ng-keypress="testAllowed($event)"