0

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

<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={}or清除每个输入$scope.stateForm.$setPristine(),但没有任何东西可以用 typeahead 清除输入。我怀疑这可能是因为 typeahead 指令的实现方式。

有没有办法在不放弃预先输入的情况下实现这一目标?

4

1 回答 1

1

实际上,typeahead指令中有一个错误会阻止您的场景正常工作。它已经在 master 中修复,并将成为下一个版本 (0.5.0) 的一部分,希望在接下来的一周内。

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

于 2013-07-23T17:58:38.727 回答