Filtros AngularJS e filtro personalizado AngularJS com exemplo

O que รฉ filtro no AngularJS?

A Filtrar em AngularJS ajuda a formatar o valor de uma expressรฃo para exibir ao usuรกrio sem alterar o formato original. Por exemplo, se quiser que sua string esteja em letras minรบsculas ou maiรบsculas, vocรช pode fazer isso usando filtros. Existem filtros integrados, como 'minรบsculas', 'maiรบsculas', que podem recuperar a saรญda em minรบsculas e maiรบsculas de acordo.

Filtro personalizado AngularJS

ร€s vezes, os filtros integrados no Angular nรฃo atendem ร s necessidades ou requisitos de filtragem de saรญda. Nesse caso, um filtro personalizado AngularJS pode ser criado, que pode passar a saรญda da maneira necessรกria.

Da mesma forma, para nรบmeros, vocรช pode usar outros filtros. Durante este tutorial, veremos os diferentes filtros integrados padrรฃo disponรญveis no Angular.

Como criar filtro personalizado em AngularJS

No exemplo de filtro personalizado AngularJS abaixo, passaremos uma string para a visualizaรงรฃo do controlador por meio do objeto de escopo, mas nรฃo queremos que a string seja exibida como estรก.

Queremos garantir que sempre que exibirmos a string, passaremos um filtro personalizado em AngularJS, que anexarรก outra string e exibirรก a string completa para o usuรกrio.

Crie filtro personalizado em AngularJS

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

Code Explicaรงรฃo

  1. Aqui estamos passando uma string โ€œAngularโ€ em uma variรกvel de membro chamada tutorial e anexando-a ao objeto de escopo.
  2. Angular fornece o serviรงo de filtro que pode ser usado para criar nosso filtro personalizado. O 'Demofiltro' รฉ o nome dado ao nosso filtro.
  3. Esta รฉ a maneira padrรฃo pela qual os filtros personalizados no AngularJS sรฃo definidos onde uma funรงรฃo รฉ retornada. Esta funรงรฃo รฉ o que contรฉm o cรณdigo personalizado para criar o filtro personalizado. Em nossa funรงรฃo, pegamos uma string โ€œAngularโ€ que รฉ passada de nossa visualizaรงรฃo para o filtro e anexamos a string โ€œTutorialโ€ a ela.
  4. Estamos usando nosso Demofilter em nossa variรกvel de membro que foi passada do controlador para a visualizaรงรฃo.

Se o cรณdigo for executado com sucesso, a seguinte saรญda serรก mostrada quando vocรช executar o cรณdigo no navegador.

Saรญda:

Crie filtro personalizado em AngularJS

Da saรญda,

  • Pode-se ver que nosso filtro personalizado foi aplicado e
  • A palavra 'Tutorial' foi anexada ao final da string, que foi passada na variรกvel de membro tutorial.

Filtro de letras minรบsculas em AngularJS

Este filtro assume uma saรญda de string e formata a string e exibe todos os caracteres da string em letras minรบsculas.

Vejamos um exemplo de filtros AngularJS com a opรงรฃo AngularJS para letras minรบsculas.

No exemplo abaixo, usaremos um controlador para enviar uma string para uma visualizaรงรฃo por meio do objeto de escopo. Em seguida, usaremos um filtro na visualizaรงรฃo para converter a string em minรบsculas.

Filtro de letras minรบsculas em AngularJS

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

Code Explicaรงรฃo

  1. Aqui estamos passando uma string, que รฉ uma combinaรงรฃo de caracteres minรบsculos e maiรบsculos em uma variรกvel de membro chamada โ€œtutorialNameโ€ e anexando-a ao objeto de escopo. O valor da string que estรก sendo passada รฉ โ€œAngularJSโ€.
  2. Estamos usando a variรกvel de membro โ€œtutorialNameโ€ e colocando um sรญmbolo de filtro (|), o que significa que a saรญda precisa ser modificada usando um filtro. Em seguida, usamos a palavra-chave minรบscula para dizer para usar o filtro integrado para gerar a string inteira em minรบsculas.

Se o cรณdigo for executado com sucesso, a seguinte saรญda serรก mostrada quando vocรช executar o cรณdigo no navegador.

Saรญda:

Filtro de letras minรบsculas em AngularJS

Da saรญda

  • Pode-se observar que foi executada a string โ€œAngularJSโ€ que foi passada na variรกvel tutorialName que era uma combinaรงรฃo de caracteres minรบsculos e maiรบsculos.
  • Apรณs a execuรงรฃo, a saรญda final fica em letras minรบsculas, conforme mostrado acima.

Filtro de maiรบsculas em AngularJS

Este filtro รฉ semelhante ao filtro de letras minรบsculas; a diferenรงa รฉ que assume uma saรญda de string e formata a string e exibe todos os caracteres da string em letras maiรบsculas.

Vejamos um exemplo de filtro de capitalizaรงรฃo AngularJS com a opรงรฃo de letras minรบsculas.

No exemplo de letras maiรบsculas do AngularJS abaixo, usaremos um controlador para enviar uma string para uma visualizaรงรฃo por meio do objeto de escopo. Em seguida, usaremos um filtro na visualizaรงรฃo para converter a string em maiรบsculas.

Filtro de maiรบsculas em AngularJS

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

Code Explicaรงรฃo

  1. Aqui estamos passando uma string que รฉ uma combinaรงรฃo de caracteres minรบsculos e maiรบsculos โ€œAngular JSโ€ em uma variรกvel de membro chamada โ€œtutorialNameโ€ e anexando-a ao objeto de escopo.
  2. Estamos usando a variรกvel membro โ€œtutorialNameโ€ e colocando um sรญmbolo de filtro (|), o que significa que a saรญda precisa ser modificada usando um filtro. Em seguida, usamos a palavra-chave maiรบscula para usar o filtro integrado para gerar a string inteira em maiรบsculas.

Se o cรณdigo for executado com sucesso, a seguinte saรญda serรก mostrada quando vocรช executar o cรณdigo no navegador.

Saรญda:

Filtro de maiรบsculas em AngularJS

Da saรญda,

  • Pode-se observar que a string que foi passada na variรกvel tutorialName que era uma combinaรงรฃo de caracteres minรบsculos e maiรบsculos foi gerada em letras maiรบsculas.

Filtro de nรบmero em AngularJS

Este filtro formata um nรบmero e pode aplicar um limite ร s casas decimais de um nรบmero.

Vejamos um exemplo de filtros AngularJS com a opรงรฃo de nรบmero.

No exemplo abaixo,

Querรญamos mostrar como podemos usar o filtro numรฉrico para formatar um nรบmero a ser exibido com uma restriรงรฃo de 2 casas decimais.

Usaremos um controlador para enviar um nรบmero para uma visualizaรงรฃo por meio do objeto de escopo. Em seguida, usaremos um filtro na visualizaรงรฃo para aplicar o filtro numรฉrico.

Filtro de nรบmero em AngularJS

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

Code Explicaรงรฃo

  1. Aqui estamos passando um nรบmero com um nรบmero maior de casas decimais em uma variรกvel de membro chamada tutorialID e anexando-o ao objeto de escopo.
  2. Estamos usando a variรกvel de membro tutorialID e colocando um sรญmbolo de filtro (|) junto com o filtro numรฉrico. Agora em nรบmero:2, o dois indica que o filtro deve restringir o nรบmero de casas decimais a 2.

Se o cรณdigo for executado com sucesso, a seguinte saรญda serรก mostrada quando vocรช executar o cรณdigo no navegador.

Saรญda:

Filtro de nรบmero em AngularJS

Da saรญda,

  • Percebe-se que o nรบmero que foi passado na variรกvel tutorialID que possuรญa um grande nรบmero de casas decimais foi limitado a 2 casas decimais devido ao nรบmero: 2 filtros que foi aplicado.

Filtro de moeda em AngularJS

Este filtro formata um filtro de moeda para um nรบmero.

Suponha que, se vocรช deseja exibir um nรบmero com uma moeda como $, esse filtro pode ser usado.

No exemplo abaixo, usaremos um controlador para enviar um nรบmero para uma visualizaรงรฃo por meio do objeto de escopo. Em seguida, usaremos um filtro na visualizaรงรฃo para aplicar o filtro atual.

Filtro de moeda em AngularJS

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

Code Explicaรงรฃo

  1. Aqui estamos passando um nรบmero em uma variรกvel de membro chamada tutorialprice e anexando-o ao objeto de escopo.
  2. Estamos usando a variรกvel de membro tutorialprice e colocando um sรญmbolo de filtro (|) junto com o filtro de moeda. Observe que a moeda aplicada depende das configuraรงรตes de idioma aplicadas ร  mรกquina.

Se o cรณdigo for executado com sucesso, a seguinte saรญda serรก mostrada quando vocรช executar o cรณdigo no navegador.

Saรญda:

Filtro de moeda em AngularJS

Da saรญda

  • Pode-se observar que o sรญmbolo da moeda foi anexado ao nรบmero que foi passado na variรกvel tutorialprice.
  • No nosso caso, como as configuraรงรตes de idioma sรฃo inglรชs (Estados Unidos), o sรญmbolo $ รฉ inserido como moeda.

Filtro JSON em AngularJS

Este filtro formata um JSON como entrada e aplica o filtro AngularJS JSON para fornecer a saรญda em JSON.

No exemplo abaixo, usaremos um controlador para enviar um objeto do tipo JSON para uma visualizaรงรฃo por meio do objeto de escopo. Em seguida, usaremos um filtro na visualizaรงรฃo para aplicar o filtro JSON.

Filtro JSON em AngularJS

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

Code Explicaรงรฃo

  1. Aqui estamos passando um nรบmero em uma variรกvel de membro chamada โ€œtutorialโ€ e anexando-o ao objeto de escopo. Esta variรกvel de membro contรฉm uma string do tipo JSON de Tutorial ID:12 e TutorialName:โ€Angularโ€.
  2. Estamos usando o tutorial de variรกvel de membro e colocando um sรญmbolo de filtro (|) junto com o filtro JSON.

Se o cรณdigo for executado com sucesso, a seguinte saรญda serรก mostrada quando vocรช executar o cรณdigo no navegador.

Saรญda:

Filtro JSON em AngularJS

Da saรญda,

  • Pode-se ver que o JSON como uma string รฉ analisado e exibido como um objeto JSON adequado no navegador.

Resumo

  • Os filtros sรฃo usados โ€‹โ€‹para alterar a forma como a saรญda รฉ exibida ao usuรกrio.
  • Angular fornece filtros integrados, como filtros de letras minรบsculas e maiรบsculas, para alterar a saรญda das strings para minรบsculas e maiรบsculas, respectivamente.
  • Tambรฉm existe a possibilidade de alterar a forma como os nรบmeros sรฃo exibidos usando o filtro de nรบmeros, especificando o nรบmero de casas decimais a serem exibidas no nรบmero.
  • Tambรฉm รฉ possรญvel usar o filtro de moeda para anexar o sรญmbolo da moeda a qualquer nรบmero.
  • Se houver um requisito para ter uma saรญda especรญfica JSON, angular tambรฉm fornece o filtro JSON para filtrar qualquer string semelhante a JSON no formato JSON.
  • Se houver um requisito que nรฃo seja atendido por nenhum dos filtros definidos em angular, vocรช poderรก criar seu filtro personalizado e adicionar seu cรณdigo personalizado para determinar o tipo de saรญda desejada do filtro.

Resuma esta postagem com: