2012-10-05 31 views
9

我對AngularJS非常陌生,今天在玩過濾器。我能夠應用filter篩選器來僅顯示符合選擇菜單中條件的行。但是,我無法爲按鈕添加「清除過濾器」功能。點擊按鈕時如何重置過濾器?如何清除過濾器 - AngularJS

在下面Plunker,你可以看到我用在嘗試的代碼實現這一點: Plunker - AngularJS Sample

回答

23

您可以使用ng-click綁定click處理的範圍之內清除query變量。

http://plnkr.co/edit/p1DnoV

+0

謝謝。這真的很有幫助。 – Sparda

+1

如果我只想清除臥室過濾器,我試過'$ scope.query.bedroom = {}'它不起作用 – naCheex

26

ng-click指令可以被用於設置濾波器模型以任何falsey - 丁不可─false JavaScript值,如''undefinednull{}

在以下代碼中,單擊div將重置customFilter模型。

<input type="text" ng-model="customFilter" /> 
<div ng-click="customFilter = undefined"> 
    Clear Filter 
</div> 

Here's a link to an updated fork of your Plunker project using Angular v1.4.1

+2

一種非常快速和整潔的方法,無需向控制器添加點擊功能。很簡單。 – Neel

+0

這個提示幫了我。但是我發現清除輸入ng模型並沒有解決我的問題,我需要清除過濾器對象,例如。所以 JoeKir

+0

@JoeKir我在Plunkr中添加了一個'示例,我的答案。 –

0

這個例子將幫助你清除,如果你使用的是NG表過濾器過濾器

<table ng-table="tableParams" show-filter="true" class="table table-striped table-bordered table-condensed table-hover cf"> 
    <tbody> 
     <tr ng-repeat="tableData in $data"> 
      <td data-title="'Name'" filter="{Name:'text'}" sortable="'{Name}'" /> 
     </tr> 
    </tbody> 
</table> 

您可以從清除過濾NG單擊如下

$scope.tableParams.parameters({ filter: {}, sorting: {}, page: 1 });