我正在使用表单将元素添加到显示在表单一侧的列表。标记是:
<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指令的实现方式。
有没有办法可以在不抛弃先行者的情况下实现这一目标?
答案 0 :(得分:1)
实际上typeahead
指令中存在一个错误,导致您的方案无法正常工作。它已经在master中修复,将成为下一个版本(0.5.0)的一部分,希望在下周发布。
与此同时,您可以从CI服务器获取最新版本,如下图所示: http://plnkr.co/edit/j9undd?p=preview