我正在使用filter,当用户在输入框中输入内容时,一切正常。我想要的是通过代码更新过滤结果(例如清除查询),而无需用户的输入。我试图触发更改事件或只是清除输入字段的值,但没有任何成功。
这是我最简单的HTML
<div ng-app ng-controller="test">
<input type="text" ng-model="query" placeholder="search..">
<button>Clear</button>
<ul class="unstyled">
<li ng-repeat="item in list | filter:query">
{{item}}
</li>
</ul>
</div>
这是JS:
function test($scope) {
$scope.list = [120, 566, 777, 889, 998, 332, 112, 440, 881];
$('button').click(function() {
$('input').val('');
});
}
如果不使用键盘删除输入内容,我可以做什么来取消结果,但是通过代码执行此操作(例如点击清除按钮)?
答案 0 :(得分:2)
不要通过jQuery注册您的事件处理程序,让ng-click
为您处理。
<button ng-click="clearBox()">Clear</button>
function test($scope) {
$scope.list = [120, 566, 777, 889, 998, 332, 112, 440, 881];
$scope.clearBox = function(){
$scope.query = "";
};
}
<强> Updated fiddle 强>