在隐藏搜索文本字段后重置过滤器以重置

时间:2014-11-12 01:49:38

标签: angularjs

我是一个搜索类型的文本字段,用作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>

2 个答案:

答案 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,因为这不起作用