我是一个搜索类型的文本字段,用作ng-repeat列表的过滤器。
<div class="search pull-right">
<div class="magnify"><img src="img/magnify.png" ng-click="magnify()"></div>
</div>
<div class="search-box" ng-show="showSearch">
<input type="search" id="searchField" name="" value="" placeholder="Search" class="textfield" ng-model="search.firstName" />
</div>
一旦我隐藏了搜索字段,结果就会被卡住而不会被重置,
在范围I中定义的放大功能中将showSearch设置为true / false
我尝试过的事情没有成功。
document.getElementById("searchField").value = "";
$scope.search.firstName='';
和我的模板
<li class="table-view-cell attendee" ng-repeat="attendee in attendees | filter:search">
<h2 class="name">{{attendee.firstName}} {{attendee.lastName}}</h2>
<span class="job">{{attendee.title}}</span>
<span class="company">{{attendee.company}}</span>
</li>
答案 0 :(得分:3)
因为您正在使用过滤器&#34; object&#34;作为条件(请参阅https://docs.angularjs.org/api/ng/filter/filter),Angular会尝试将attendee
的属性与search
的属性进行匹配。要重置过滤器,您需要执行
$scope.search = {};
答案 1 :(得分:2)
如果您的数据类型是对象,请执行
$scope.search = {};
如果您的数据类型是字符串,请执行
$scope.search = '';
不要错误地尝试将其设置为null,因为这不起作用