Filtros AngularJS y filtro personalizado AngularJS con ejemplo
ยฟQuรฉ es el filtro en AngularJS?
A Filtrar en AngularJS ayuda a formatear el valor de una expresiรณn para mostrarla al usuario sin cambiar el formato original. Por ejemplo, si desea que su cadena estรฉ en minรบsculas o mayรบsculas, puede hacerlo usando filtros. Hay filtros integrados como "minรบsculas", "mayรบsculas", que pueden recuperar la salida en minรบsculas y mayรบsculas en consecuencia.
Filtro personalizado AngularJS
A veces, los filtros integrados en Angular no pueden satisfacer las necesidades o requisitos para filtrar la salida. En tal caso, se puede crear un filtro personalizado de AngularJS, que puede pasar la salida de la manera requerida.
De manera similar, para los nรบmeros, puedes usar otros filtros. Durante este tutorial, veremos los diferentes filtros integrados estรกndar disponibles en Angular.
Cรณmo crear un filtro personalizado en AngularJS
En el siguiente ejemplo de filtro personalizado de AngularJS, vamos a pasar una cadena a la vista desde el controlador a travรฉs del objeto de alcance, pero no queremos que la cadena se muestre tal como estรก.
Queremos asegurarnos de que cada vez que mostremos la cadena, pasaremos un filtro personalizado en AngularJS, que agregarรก otra cadena y mostrarรก la cadena completa al usuario.
<!DOCTYPE html>
<html>
<head>
<meta chrset="UTF 8">
<title>Event Registration</title>
</head>
<body>
<script src="https://code.angularjs.org/1.6.9/angular-route.js"></script>
<script src="https://code.angularjs.org/1.6.9/angular.min.js"></script>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<h1> Guru99 Global Event</h1>
<div ng-app="DemoApp" ng-controller="DemoController">
This tutorial is {{tutorial | Demofilter}}
</div>
<script type="text/javascript">
var app = angular.module('DemoApp',[]);
app.filter('Demofilter',function(){
return function(input)
{
return input + " Tutorial"
}
});
app.controller('DemoController',function($scope){
$scope.tutorial ="Angular";
});
</script>
</body>
</html>
Explicaciรณn del cรณdigo
- Aquรญ pasamos una cadena "Angular" en una variable miembro llamada tutorial y la adjuntamos al objeto de alcance.
- Angular proporciona el servicio de filtro que se puede utilizar para crear nuestro filtro personalizado. El 'Demofilter' es el nombre que se le da a nuestro filtro.
- Esta es la forma estรกndar en la que se definen los filtros personalizados en AngularJS en los que se devuelve una funciรณn. Esta funciรณn es la que contiene el cรณdigo personalizado para crear el filtro personalizado. En nuestra funciรณn, tomamos una cadena "Angular" que se pasa desde nuestra vista al filtro y le agregamos la cadena "Tutorial".
- Estamos usando nuestro Demofilter en nuestra variable miembro que se pasรณ del controlador a la vista.
Si el cรณdigo se ejecuta correctamente, se mostrarรก la siguiente salida cuando ejecute el cรณdigo en el navegador.
Salida:
Desde la salida,
- Se puede ver que nuestro filtro personalizado ha sido aplicado y
- La palabra "Tutorial" se agregรณ al final de la cadena, que se pasรณ en el tutorial de variable miembro.
Filtro de minรบsculas en AngularJS
Este filtro toma una salida de cadena, formatea la cadena y muestra todos los caracteres de la cadena en minรบsculas.
Veamos un ejemplo de filtros AngularJS con la opciรณn AngularJS a minรบsculas.
En el siguiente ejemplo, usaremos un controlador para enviar una cadena a una vista a travรฉs del objeto de alcance. Luego usaremos un filtro en la vista para convertir la cadena a minรบsculas.
<!DOCTYPE html>
<html>
<head>
<meta chrset="UTF 8">
<title>Event Registration</title>
</head>
<body>
<script src="https://code.angularjs.org/1.6.9/angular-route.js"></script>
<script src="https://code.angularjs.org/1.6.9/angular.min.js"></script>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<h1> Guru99 Global Event</h1>
<div ng-app="DemoApp" ng-controller="DemoController">
Tutorial Name : <input type="text" ng-model="tutorialName"><br>
<br>
This tutorial is {{tutorialName | lowercase}}
</div>
<script type="text/javascript">
var app = angular.module('DemoApp',[]);
app.controller('DemoController',function($scope){
$scope.tutorialName ="Angular JS";
});
</script>
</body>
</html>
Explicaciรณn del cรณdigo
- Aquรญ pasamos una cadena, que es una combinaciรณn de caracteres en minรบsculas y mayรบsculas en una variable miembro llamada "tutorialName" y la adjuntamos al objeto de alcance. El valor de la cadena que se pasa es "AngularJS".
- Estamos usando la variable miembro "tutorialName" y colocando un sรญmbolo de filtro (|), lo que significa que la salida debe modificarse mediante el uso de un filtro. Luego usamos la palabra clave en minรบsculas para indicar que se use el filtro incorporado para generar la cadena completa en minรบsculas.
Si el cรณdigo se ejecuta correctamente, se mostrarรก la siguiente salida cuando ejecute el cรณdigo en el navegador.
Salida:
De la salida
- Se puede ver que se ejecutรณ la cadena "AngularJS" que se pasรณ en la variable tutorialName que era una combinaciรณn de caracteres en minรบsculas y mayรบsculas.
- Despuรฉs de la ejecuciรณn, el resultado final estรก en minรบsculas como se muestra arriba.
Filtro de mayรบsculas en AngularJS
Este filtro es similar al filtro de minรบsculas; la diferencia es que toma una salida de cadena, formatea la cadena y muestra todos los caracteres de la cadena en mayรบsculas.
Veamos un ejemplo de filtro de mayรบsculas AngularJS con la opciรณn de minรบsculas.
En el siguiente ejemplo de uso de mayรบsculas en AngularJS, usaremos un controlador para enviar una cadena a una vista a travรฉs del objeto de alcance. Luego usaremos un filtro en la vista para convertir la cadena a mayรบsculas.
<!DOCTYPE html>
<html>
<head>
<meta chrset="UTF 8">
<title>Event Registration</title>
</head>
<body>
<script src="https://code.angularjs.org/1.6.9/angular-route.js"></script>
<script src="https://code.angularjs.org/1.6.9/angular.min.js"></script>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<h1> Guru99 Global Event</h1>
<div ng-app="DemoApp" ng-controller="DemoController">
Tutorial Name : <input type="text" ng-model="tutorialName"><br>
<br>
This tutorial is {{tutorialName | uppercase}}
</div>
<script type="text/javascript">
var app = angular.module('DemoApp',[]);
app.controller('DemoController',function($scope){
$scope.tutorialName ="Angular JS";
});
</script>
</body>
</html>
Explicaciรณn del cรณdigo
- Aquรญ pasamos una cadena que es una combinaciรณn de caracteres en minรบsculas y mayรบsculas "Angular JS" en una variable miembro llamada "tutorialName" y la adjuntamos al objeto de alcance.
- Estamos usando la variable miembro "tutorialName" y colocando un sรญmbolo de filtro (|), lo que significa que la salida debe modificarse mediante el uso de un filtro. Luego usamos la palabra clave en mayรบsculas para indicar que se use el filtro incorporado para generar la cadena completa en mayรบsculas.
Si el cรณdigo se ejecuta correctamente, se mostrarรก la siguiente salida cuando ejecute el cรณdigo en el navegador.
Salida:
Desde la salida,
- Se puede ver que la cadena que se pasรณ en la variable tutorialName, que era una combinaciรณn de caracteres en minรบsculas y mayรบsculas, se generรณ completamente en mayรบsculas.
Filtro numรฉrico en AngularJS
Este filtro da formato a un nรบmero y puede aplicar un lรญmite a los puntos decimales de un nรบmero.
Veamos un ejemplo de filtros AngularJS con la opciรณn numรฉrica.
En el siguiente ejemplo,
Querรญamos mostrar cรณmo podemos usar el filtro numรฉrico para formatear un nรบmero y mostrarlo con una restricciรณn de 2 decimales.
Usaremos un controlador para enviar un nรบmero a una vista a travรฉs del objeto de alcance. Luego usaremos un filtro en la vista para aplicar el filtro numรฉrico.
<!DOCTYPE html>
<html>
<head>
<meta chrset="UTF 8">
<title>Event Registration</title>
</head>
<body>
<script src="https://code.angularjs.org/1.6.9/angular-route.js"></script>
<script src="https://code.angularjs.org/1.6.9/angular.min.js"></script>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<h1> Guru99 Global Event</h1>
<div ng-app="DemoApp" ng-controller="DemoController">
This tutorialID is {{tutorialID | number:2}}
</div>
<script type="text/javascript">
var app = angular.module('DemoApp',[]);
app.controller('DemoController',function($scope){
$scope.tutorialID =3.565656;
});
</script>
</body>
</html>
Explicaciรณn del cรณdigo
- Aquรญ pasamos un nรบmero con una mayor cantidad de decimales en una variable miembro llamada tutorialID y lo adjuntamos al objeto de alcance.
- Estamos usando la variable miembro tutorialID y colocando un sรญmbolo de filtro (|) junto con el filtro numรฉrico. Ahora en nรบmero:2, el dos indica que el filtro debe restringir el nรบmero de decimales a 2.
Si el cรณdigo se ejecuta correctamente, se mostrarรก la siguiente salida cuando ejecute el cรณdigo en el navegador.
Salida:
Desde la salida,
- Se puede ver que el nรบmero que se pasรณ en la variable tutorialID que tenรญa una gran cantidad de puntos decimales se limitรณ a 2 decimales debido al nรบmero: 2 filtros que se aplicaron.
Filtro de moneda en AngularJS
Este filtro formatea un filtro de moneda en un nรบmero.
Supongamos que si desea mostrar un nรบmero con una moneda como $, entonces se puede utilizar este filtro.
En el siguiente ejemplo, usaremos un controlador para enviar un nรบmero a una vista a travรฉs del objeto de alcance. Luego usaremos un filtro en la vista para aplicar el filtro actual.
<!DOCTYPE html>
<html>
<head>
<meta chrset="UTF 8">
<title>Event Registration</title>
</head>
<body>
<script src="https://code.angularjs.org/1.6.9/angular-route.js"></script>
<script src="https://code.angularjs.org/1.6.9/angular.min.js"></script>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<h1> Guru99 Global Event</h1>
<div ng-app="DemoApp" ng-controller="DemoController">
This tutorial Price is {{tutorialprice | currency}}
</div>
<script type="text/javascript">
var app = angular.module('DemoApp',[]);
app.controller('DemoController',function($scope){
$scope.tutorialprice =20.56;
});
</script>
</body>
</html>
Explicaciรณn del cรณdigo
- Aquรญ pasamos un nรบmero en una variable miembro llamada tutorialprice y lo adjuntamos al objeto de alcance.
- Estamos utilizando la variable miembro precio del tutorial y colocando un sรญmbolo de filtro (|) junto con el filtro de moneda. Tenga en cuenta que la moneda que se aplica depende de la configuraciรณn de idioma que se aplica a la mรกquina.
Si el cรณdigo se ejecuta correctamente, se mostrarรก la siguiente salida cuando ejecute el cรณdigo en el navegador.
Salida:
De la salida
- Se puede ver que el sรญmbolo de moneda se ha agregado al nรบmero que se pasรณ en la variable precio del tutorial.
- En nuestro caso, como la configuraciรณn de idioma es inglรฉs (Estados Unidos), se inserta el sรญmbolo $ como moneda.
Filtro JSON en AngularJS
Este filtro formatea un JSON como entrada y aplica el filtro JSON de AngularJS para dar la salida en JSON.
En el siguiente ejemplo, usaremos un controlador para enviar un objeto de tipo JSON a una vista a travรฉs del objeto de alcance. Luego usaremos un filtro en la vista para aplicar el filtro JSON.
<!DOCTYPE html>
<html>
<head>
<meta chrset="UTF 8">
<title>Event Registration</title>
</head>
<body>
<script src="https://code.angularjs.org/1.6.9/angular-route.js"></script>
<script src="https://code.angularjs.org/1.6.9/angular.min.js"></script>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<h1> Guru99 Global Event</h1>
<div ng-app="DemoApp" ng-controller="DemoController">
This tutorial is {{tutorial | json}}
</div>
<script type="text/javascript">
var app = angular.module('DemoApp',[]);
app.controller('DemoController',function($scope){
$scope.tutorial ={TutorialID:12,tutorialName:"Angular"};
});
</script>
</body>
</html>
Explicaciรณn del cรณdigo
- Aquรญ pasamos un nรบmero en una variable miembro llamada "tutorial" y lo adjuntamos al objeto de alcance. Esta variable miembro contiene una cadena de tipo JSON de ID de tutorial: 12 y Nombre de tutorial: "Angular".
- Estamos usando el tutorial de variables miembro y colocando un sรญmbolo de filtro (|) junto con el filtro JSON.
Si el cรณdigo se ejecuta correctamente, se mostrarรก la siguiente salida cuando ejecute el cรณdigo en el navegador.
Salida:
Desde la salida,
- Se puede ver que el JSON, como una cadena, se analiza y se muestra como un objeto JSON adecuado en el navegador.
Resumen
- Los filtros se utilizan para cambiar la forma en que se muestra la salida al usuario.
- Angular proporciona filtros integrados, como filtros de minรบsculas y mayรบsculas, para cambiar la salida de las cadenas a minรบsculas y mayรบsculas respectivamente.
- Tambiรฉn existe una disposiciรณn para cambiar la forma en que se muestran los nรบmeros mediante el uso del filtro de nรบmeros, especificando la cantidad de puntos decimales que se mostrarรกn en el nรบmero.
- Tambiรฉn se puede utilizar el filtro de moneda para agregar el sรญmbolo de moneda a cualquier nรบmero.
- Si es necesario tener una salida especรญfica de JSON, angular tambiรฉn proporciona el filtro JSON para filtrar cualquier cadena similar a JSON en formato JSON.
- Si hay un requisito que no cumple ninguno de los filtros definidos en angular, puede crear su filtro personalizado y agregar su cรณdigo personalizado para determinar el tipo de salida que desea del filtro.












