AngularJS-filtre og AngularJS-tilpasset filter med eksempel

Hva er filter i AngularJS?

A Filtrer i AngularJS hjelper til med รฅ formatere verdien av et uttrykk som skal vises for brukeren uten รฅ endre det opprinnelige formatet. For eksempel, hvis du vil ha strengen din enten med smรฅ eller store bokstaver, kan du gjรธre det ved รฅ bruke filtre. Det er innebygde filtre som "smรฅ bokstaver", "store bokstaver", som kan hente ut smรฅ bokstaver og store bokstaver tilsvarende.

AngularJS tilpasset filter

Noen ganger kan ikke de innebygde filtrene i Angular mรธte behovene eller kravene til filtrering av utgang. I et slikt tilfelle kan et tilpasset AngularJS-filter opprettes, som kan sende utdataene pรฅ รธnsket mรฅte.

Pรฅ samme mรฅte kan du bruke andre filtre for tall. I lรธpet av denne opplรฆringen vil vi se de forskjellige standard innebygde filtrene som er tilgjengelige i Angular.

Hvordan lage tilpasset filter i AngularJS

I eksemplet under tilpasset filter AngularJS skal vi sende en streng til visningen fra kontrolleren via scope-objektet, men vi vil ikke at strengen skal vises som den er.

Vi รธnsker รฅ sikre at nรฅr vi viser strengen, sender vi inn et tilpasset filter AngularJS, som vil legge til en annen streng og vise den fullfรธrte strengen til brukeren.

Opprett tilpasset filter i 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 Forklaring

  1. Her sender vi en streng "Angular" i en medlemsvariabel kalt tutorial og fester den til scope-objektet.
  2. Angular tilbyr filtertjenesten som kan brukes til รฅ lage vรฅrt tilpassede filter. 'Demofilter' er et navn gitt til filteret vรฅrt.
  3. Dette er standardmรฅten som tilpassede filtre i AngularJS defineres der en funksjon returneres. Denne funksjonen er det som inneholder den egendefinerte koden for รฅ lage det egendefinerte filteret. I funksjonen vรฅr tar vi en streng "Angular" som sendes fra visningen vรฅr til filteret og legger til strengen "Tutorial" til denne.
  4. Vi bruker vรฅrt Demofilter pรฅ vรฅr medlemsvariabel som ble sendt fra kontrolleren til visningen.

Hvis koden utfรธres vellykket, vil fรธlgende utdata vises nรฅr du kjรธrer koden i nettleseren.

Utgang:

Opprett tilpasset filter i AngularJS

Fra utgangen,

  • Det kan ses at vรฅrt tilpassede filter er brukt og
  • Ordet "Tutorial" er lagt til pรฅ slutten av strengen, som ble sendt i medlemsvariabelopplรฆringen.

Filter for smรฅ bokstaver i AngularJS

Dette filteret tar pรฅ seg en strengutgang og formaterer strengen og viser alle tegnene i strengen som smรฅ bokstaver.

La oss se pรฅ et eksempel pรฅ AngularJS-filtre med alternativet AngularJS til smรฅ bokstaver.

I eksemplet nedenfor vil vi bruke en kontroller til รฅ sende en streng til en visning via scope-objektet. Vi vil da bruke et filter i visningen for รฅ konvertere strengen til smรฅ bokstaver.

Filter for smรฅ bokstaver i 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 Forklaring

  1. Her sender vi en streng, som er en kombinasjon av smรฅ og store bokstaver i en medlemsvariabel kalt "tutorialName" og fester den til scope-objektet. Verdien av strengen som sendes er "AngularJS".
  2. Vi bruker medlemsvariabelen "tutorialName" og setter et filtersymbol (|) som betyr at utdataene mรฅ endres ved รฅ bruke et filter. Vi bruker sรฅ nรธkkelordet med smรฅ bokstaver for รฅ si รฅ bruke det innebygde filteret til รฅ skrive ut hele strengen med smรฅ bokstaver.

Hvis koden utfรธres vellykket, vil fรธlgende utdata vises nรฅr du kjรธrer koden i nettleseren.

Utgang:

Filter for smรฅ bokstaver i AngularJS

Fra utgangen

  • Det kan sees at strengen "AngularJS" som ble sendt i variabelen tutorialName som var en kombinasjon av smรฅ og store bokstaver har blitt utfรธrt.
  • Etter utfรธrelse er den endelige utgangen med smรฅ bokstaver som vist ovenfor.

Filter for store bokstaver i AngularJS

Dette filteret ligner filteret med smรฅ bokstaver; forskjellen er at tar pรฅ seg en strengutgang og formaterer strengen og viser alle tegnene i strengen som store bokstaver.

La oss se pรฅ et eksempel pรฅ bruk av store bokstaver AngularJS med alternativet for smรฅ bokstaver.

I AngularJS-eksemplet nedenfor vil vi bruke en kontroller for รฅ sende en streng til en visning via scope-objektet. Vi vil da bruke et filter i visningen for รฅ konvertere strengen til store bokstaver.

Filter for store bokstaver i 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 Forklaring

  1. Her sender vi en streng som er en kombinasjon av smรฅ og store bokstaver "Angular JS" i en medlemsvariabel kalt "tutorialName" og fester den til scope-objektet.
  2. Vi bruker medlemsvariabelen "tutorialName" og setter et filtersymbol (|), som betyr at utdataene mรฅ endres ved รฅ bruke et filter. Vi bruker sรฅ nรธkkelordet med store bokstaver for รฅ si รฅ bruke det innebygde filteret til รฅ skrive ut hele strengen med store bokstaver.

Hvis koden utfรธres vellykket, vil fรธlgende utdata vises nรฅr du kjรธrer koden i nettleseren.

Utgang:

Filter for store bokstaver i AngularJS

Fra utgangen,

  • Det kan ses at strengen som ble sendt i variabelen tutorialName, som var en kombinasjon av smรฅ og store bokstaver, har blitt skrevet ut med store bokstaver.

Nummerfilter i AngularJS

Dette filteret formaterer et tall og kan bruke en grense for desimaltegn for et tall.

La oss se pรฅ et eksempel pรฅ AngularJS-filtre med tallalternativet.

I eksemplet nedenfor,

Vi รธnsket รฅ vise frem hvordan vi kan bruke tallfilteret til รฅ formatere et tall som skal vises med en begrensning pรฅ 2 desimaler.

Vi vil bruke en kontroller for รฅ sende et nummer til en visning via scope-objektet. Vi vil da bruke et filter i visningen for รฅ bruke tallfilteret.

Nummerfilter i 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 Forklaring

  1. Her sender vi et tall med et stรธrre antall desimaler i en medlemsvariabel kalt tutorialID og knytter det til scope-objektet.
  2. Vi bruker medlemsvariabelen tutorialID og setter et filtersymbol (|) sammen med tallfilteret. Nรฅ i nummer:2 indikerer de to at filteret skal begrense antall desimaler til 2.

Hvis koden utfรธres vellykket, vil fรธlgende utdata vises nรฅr du kjรธrer koden i nettleseren.

Utgang:

Nummerfilter i AngularJS

Fra utgangen,

  • Det kan ses at tallet som ble bestรฅtt i variabelen tutorialID som hadde et stort antall desimaler, er begrenset til 2 desimaler pรฅ grunn av antallet: 2 filtre som ble brukt.

Valutafilter i AngularJS

Dette filteret formaterer et valutafilter til et tall.

Anta at hvis du รธnsker รฅ vise et tall med en valuta som $, kan dette filteret brukes.

I eksemplet nedenfor vil vi bruke en kontroller til รฅ sende et nummer til en visning via scope-objektet. Vi vil da bruke et filter i visningen for รฅ bruke det gjeldende filteret.

Valutafilter i 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 Forklaring

  1. Her sender vi et tall i en medlemsvariabel kalt tutorialprice og knytter det til scope-objektet.
  2. Vi bruker medlemsvariabelen opplรฆringspris og setter et filtersymbol (|) sammen med valutafilteret. Merk at valutaen som brukes avhenger av sprรฅkinnstillingene som brukes pรฅ maskinen.

Hvis koden utfรธres vellykket, vil fรธlgende utdata vises nรฅr du kjรธrer koden i nettleseren.

Utgang:

Valutafilter i AngularJS

Fra utgangen

  • Det kan sees at valutasymbolet er lagt til nummeret som ble bestรฅtt i den variable opplรฆringsprisen.
  • I vรฅrt tilfelle, siden sprรฅkinnstillingene er engelsk (USA), er $-symbolet satt inn som valuta.

JSON-filter i AngularJS

Dette filteret formaterer en JSON liker input og bruker AngularJS JSON-filteret for รฅ gi utdata i JSON.

I eksemplet nedenfor vil vi bruke en kontroller til รฅ sende et JSON-objekt til en visning via scope-objektet. Vi vil da bruke et filter i visningen for รฅ bruke JSON-filteret.

JSON-filter i 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 Forklaring

  1. Her sender vi et tall i en medlemsvariabel kalt "tutorial" og fester det til scope-objektet. Denne medlemsvariabelen inneholder en JSON-typestreng med Tutorial ID:12, og TutorialName:"Angular".
  2. Vi bruker medlemsvariabelopplรฆringen og setter et filtersymbol (|) sammen med JSON-filteret.

Hvis koden utfรธres vellykket, vil fรธlgende utdata vises nรฅr du kjรธrer koden i nettleseren.

Utgang:

JSON-filter i AngularJS

Fra utgangen,

  • Det kan sees at JSON som en streng blir analysert og viser et riktig JSON-objekt i nettleseren.

Sammendrag

  • Filtre brukes til รฅ endre mรฅten utdataene vises pรฅ for brukeren.
  • Angular har innebygde filtre som smรฅ og store filtre for รฅ endre utgangen av strenger til henholdsvis smรฅ og store bokstaver.
  • Det er ogsรฅ en bestemmelse for รฅ endre mรฅten tall vises pรฅ ved รฅ bruke tallfilteret ved รฅ spesifisere antall desimaltegn som skal vises i tallet.
  • Man kan ogsรฅ bruke valutafilteret til รฅ legge til valutasymbolet til et hvilket som helst tall.
  • Hvis det er et krav om รฅ ha JSON-spesifikk utgang, gir angular ogsรฅ JSON-filteret for รฅ filtrere en hvilken som helst JSON-lignende streng til JSON-format.
  • Hvis det er et krav som ikke oppfylles av noen av filtrene som er definert i angular, kan du lage ditt egendefinerte filter og legge til din egendefinerte kode for รฅ bestemme hvilken type utgang du รธnsker fra filteret.

Oppsummer dette innlegget med: