Filtro Ng-Repeat en Angular

Rana Hasnain Khan 15 febrero 2024
Filtro Ng-Repeat en Angular

Presentaremos cómo usar la propiedad filter en ng-repeat en Angular.

Filtrar en Angular Ng-Repeat

Ng-repeat se usa para repetir un conjunto de HTML hasta que se muestren los elementos de la lista. Es útil mostrar una lista de datos con el mismo diseño en una página, como en tablas o publicaciones de blog.

Mientras mostramos una lista de datos en tablas o publicaciones de blog, a veces queremos filtrar datos específicos del resultado mostrado. Para mostrar datos según la categoría o cualquier otra etiqueta específica, podemos usar el filter en ng-repeat, que mostrará datos en función de la consulta que queramos.

Veamos un ejemplo para entender filter en ng-repeat. Primero, crearemos una lista de libros mostrados usando ng-repeat.

Vamos a crear una lista de cuatro libros que se mostrarán.

# angular
var app = angular.module("myList", []);
app.controller("ListCtrl", function($scope) {
  $scope.records = [
    {
      "Name" : "Book 1",
      "Publisher" : "Germany"
    },
    {
      "Name" : "Book 2",
      "Publisher" : "Czeck"
    },
    {
      "Name" : "Book 3",
      "Publisher" : "Canada"
    },
    {
      "Name" : "Book 4",
      "Publisher" : "Australia"
    }
  ]
});

Ahora que hemos creado una lista, crearemos una plantilla para mostrar nuestra lista usando ng-repeat. Usaremos Bootstrap para crear una tabla con esta lista de libros.

# angular
<body ng-app="myList">
<table ng-controller="ListCtrl" border="1">
<tr ng-repeat="book in records">
  <td>{{book.Name}}</td>
  <td>{{book.Publisher}}</td>  
</tr>
</table>
</body>

Producción:

tabla de libros usando ng-repeat

En la imagen, puede ver que hemos mostrado la lista de libros en una tabla usando ng-repeat.

Ahora vamos a filtrar nuestra lista usando filter en ng-repeat.

# angular
<body ng-app="myList">
<table ng-controller="ListCtrl" border="1">
<tr ng-repeat="book in records | filter: {Name: 'Book 1'} ">
  <td>{{book.Name}}</td>
  <td>{{book.Publisher}}</td>  
</tr>
</table>
</body>

Comprobemos la salida.

tabla de libros usando el filtro ng-repeat

En la imagen, puede ver que podemos usar fácilmente la propiedad de filtro en ng-repeat para filtrar los resultados a nuestro gusto.

Rana Hasnain Khan avatar Rana Hasnain Khan avatar

Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.

LinkedIn