Angular以编程方式使用Bootstrap typeahead清空输入

时间:2013-07-23 17:04:32

标签: javascript twitter-bootstrap angularjs bootstrap-typeahead

我正在使用表单将元素添加到显示在表单一侧的列表。标记是:

<form name="stateForm">
  <input type="text" ng-model="model.name" typeahead="state for state in states | filter:$viewValue">
  <button ng-click="addState(model)">Add to list</button>
</form>
<ul>
  <li ng-repeat="state in selected_states">{{state.name}} - {{state.desc}}</li>
</ul>

,而控制器是:

  $scope.states = ['Alabama', 'Wyoming'];
  $scope.selected_states = [];
  $scope.addState = function(state){
    $scope.selected_states.push(state);
    $scope.model = {};
    $scope.stateForm.$setPristine();        
  }

工作样本:http://plnkr.co/edit/sLQCCm?p=preview

现在的问题是,虽然我可以使用$scope.model={}$scope.stateForm.$setPristine()清除每个输入,但是没有任何内容可以使用typeahead清除输入。我怀疑这可能是因为typeahead指令的实现方式。

有没有办法可以在不抛弃先行者的情况下实现这一目标?

1 个答案:

答案 0 :(得分:1)

实际上typeahead指令中存在一个错误,导致您的方案无法正常工作。它已经在master中修复,将成为下一个版本(0.5.0)的一部分,希望在下周发布。

与此同时,您可以从CI服务器获取最新版本,如下图所示: http://plnkr.co/edit/j9undd?p=preview