我正在使用表单将元素添加到表单侧面显示的列表中。标记是:
<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 指令的实现方式。
有没有办法在不放弃预先输入的情况下实现这一目标?