2012-10-05 135 views
9

Soy muy nuevo en AngularJS y hoy jugaba con filtros. Pude aplicar el filtro filter para mostrar solo las filas que coinciden con los criterios de los menús de selección. Sin embargo, no pude agregar una función de "borrar filtro" al botón. ¿Cómo puedo restablecer el filtro cuando se hace clic en el botón?Cómo borrar un filtro - AngularJS

En la siguiente Plunker, se puede ver el código que estaba usando en los intentos de lograr esto: Plunker - AngularJS Sample

Respuesta

23

Se puede utilizar para unir ng-click controlador de clic para borrar query variable dentro de un ámbito.

http://plnkr.co/edit/p1DnoV

+0

Gracias. Eso fue realmente útil. – Sparda

+1

Si solo quiero borrar el filtro del dormitorio, probé '$ scope.query.bedroom = {}' No funciona – naCheex

26

La directiva ng-click se puede utilizar para establecer el modelo de filtro a cualquier valor Javascript Falsey-pero-no- false, como '', undefined, null o {}.

En el siguiente código, al hacer clic en div se restablecería el modelo 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

Un método muy rápido y ordenado sin la necesidad de agregar una función de clic al controlador. Muy simple. – Neel

+0

Ese consejo me ayudó. Sin embargo, encontré que limpiar el input ng-model no resolvió mi problema, necesitaba borrar el objeto de filtro, por ejemplo, . Así que JoeKir

+0

@JoeKir He añadido un ' ejemplo al Plunkr al que proporcioné un enlace en mi respuesta. –

0

Este ejemplo nos ayudará a despejar filtros si está utilizando el filtro ng mesa

<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> 

Puede limpiar el filtro de la ng clic como a continuación

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