AngularJS szűrők és AngularJS egyéni szűrő példával
Mi az a szűrő az AngularJS-ben?
A Szűrés AngularJS-ben segít formázni egy kifejezés értékét, hogy az eredeti formátum megváltoztatása nélkül megjelenjen a felhasználó számára. Ha például azt szeretné, hogy a karakterlánc kis- vagy nagybetűs legyen, ezt szűrők segítségével is megteheti. Vannak beépített szűrők, mint például a „kisbetűs”, „nagybetűs” szűrők, amelyek ennek megfelelően tudják lekérni a kis- és nagybetűs kimenetet.
AngularJS egyéni szűrő
Néha az Angular beépített szűrői nem felelnek meg a kimeneti szűréssel kapcsolatos igényeknek vagy követelményeknek. Ilyen esetben létrehozható egy AngularJS egyedi szűrő, amely a kívánt módon továbbítja a kimenetet.
Hasonlóképpen a számokhoz más szűrőket is használhat. Ebben az oktatóanyagban látni fogjuk az Angularban elérhető különböző szabványos beépített szűrőket.
Egyéni szűrő létrehozása az AngularJS-ben
Az alábbi egyéni szűrő AngularJS példában egy karakterláncot fogunk átadni a nézetnek a vezérlőből a hatókör objektumon keresztül, de nem akarjuk, hogy a karakterlánc úgy jelenjen meg, ahogy van.
Biztosítani szeretnénk, hogy amikor megjelenítjük a karakterláncot, egyéni szűrőt adjunk át AngularJS, amely hozzáfűz egy másik karakterláncot, és megjeleníti a befejezett karakterláncot a felhasználó számára.
<!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>
Kód Magyarázat
- Itt egy „Angular” karakterláncot adunk át a tutorial nevű tagváltozóban, és csatoljuk a hatókör objektumhoz.
- Az Angular biztosítja a szűrőszolgáltatást, amellyel egyéni szűrőnk készíthető. A „Demofilter” a szűrőnknek adott név.
- Ez a szabványos módja az AngularJS egyéni szűrőinek meghatározásának, ahol egy függvényt ad vissza. Ez a függvény tartalmazza az egyéni szűrő létrehozásához szükséges egyéni kódot. A mi függvényünkben egy "Angular" karakterláncot veszünk, amelyet a nézetünkből a szűrőhöz továbbítunk, és ehhez hozzáfűzzük a "Tutorial" karakterláncot.
- A Demofilterünket használjuk a tagváltozónkon, amelyet a vezérlőtől a nézethez továbbítottunk.
Ha a kód sikeresen lefut, a következő kimenet jelenik meg, amikor futtatja a kódot a böngészőben.
output:
A kimenetből,
- Látható, hogy egyéni szűrőnket alkalmaztuk és
- A "Tutorial" szót hozzáfűztük a karakterlánc végéhez, amelyet a tagváltozós oktatóprogramban adtak át.
Kisbetűs szűrő az AngularJS-ben
Ez a szűrő karakterlánc-kimenetet vesz fel, és formázza a karakterláncot, és a karakterlánc összes karakterét kisbetűként jeleníti meg.
Nézzünk egy példát az AngularJS-szűrőkre az AngularJS-ből kisbetűre opcióval.
Az alábbi példában egy vezérlőt fogunk használni, hogy egy karakterláncot küldjünk egy nézetnek a hatókör objektumon keresztül. Ezután a nézetben egy szűrőt használunk a karakterlánc kisbetűssé alakításához.
<!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>
Kód Magyarázat
- Itt egy karakterláncot adunk át, amely kis- és nagybetűk kombinációja a „tutorialName” tagváltozóban, és csatoljuk a hatókör objektumhoz. Az átadott karakterlánc értéke „AngularJS”.
- A „tutorialName” tagváltozót használjuk, és egy szűrőszimbólumot (|) helyezünk el, ami azt jelenti, hogy a kimenetet szűrő használatával módosítani kell. Ezután a kisbetűs kulcsszóval azt mondjuk, hogy a beépített szűrő használatával a teljes karakterláncot kisbetűkkel írjuk ki.
Ha a kód sikeresen lefut, a következő kimenet jelenik meg, amikor futtatja a kódot a böngészőben.
output:
A kimenetből
- Látható, hogy a tutorialName változóban átadott „AngularJS” karakterlánc végrehajtásra került, amely kis- és nagybetűk kombinációja volt.
- A végrehajtás után a végső kimenet kisbetűvel jelenik meg, amint az fent látható.
Nagybetűs szűrő az AngularJS-ben
Ez a szűrő hasonló a kisbetűs szűrőhöz; A különbség az, hogy karakterlánc kimenetet vesz fel, és formázza a karakterláncot, és a karakterlánc összes karakterét nagybetűként jeleníti meg.
Nézzünk egy példát az AngularJS nagybetűs szűrő kisbetűs beállítására.
Az alábbi AngularJS nagybetűs példában egy vezérlőt fogunk használni, hogy egy karakterláncot küldjünk egy nézetnek a hatókör objektumon keresztül. Ezután a nézetben egy szűrőt használunk a karakterlánc nagybetűssé alakításához.
<!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>
Kód Magyarázat
- Itt egy karakterláncot adunk át, amely kis- és nagybetűs „Angular JS” karakterek kombinációja a „tutorialName” nevű tagváltozóban, és csatoljuk a hatókör objektumhoz.
- A „tutorialName” tagváltozót használjuk, és egy szűrőszimbólumot (|) teszünk, ami azt jelenti, hogy a kimenetet szűrővel kell módosítani. Ezután a nagybetűs kulcsszóval azt mondjuk, hogy a beépített szűrő használatával a teljes karakterláncot nagybetűvel írjuk ki.
Ha a kód sikeresen lefut, a következő kimenet jelenik meg, amikor futtatja a kódot a böngészőben.
output:
A kimenetből,
- Látható, hogy a tutorialName változóban átadott karakterlánc, amely kis- és nagybetűk kombinációja volt, minden nagybetűvel lett kiadva.
Számszűrő az AngularJS-ben
Ez a szűrő formáz egy számot, és korlátozhatja a szám tizedesvesszőjét.
Nézzünk egy példát az AngularJS szűrőkre a szám opcióval.
Az alábbi példában
Be akartuk mutatni, hogyan használhatjuk a számszűrőt a megjelenítendő szám formázására, 2 tizedesjegy korlátozással.
Vezérlőt fogunk használni, hogy számot küldjünk egy nézetnek a hatókör objektumon keresztül. Ezután egy szűrőt használunk a nézetben a számszűrő alkalmazásához.
<!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>
Kód Magyarázat
- Itt egy tutorialID nevű tagváltozóban nagyobb számú tizedesjegyű számot adunk át, és csatoljuk a hatókör objektumhoz.
- A tutorialID tagváltozót használjuk, és egy szűrőszimbólumot (|) teszünk a számszűrő mellé. Most a szám:2-ben a kettő azt jelzi, hogy a szűrőnek 2-re kell korlátoznia a tizedesjegyek számát.
Ha a kód sikeresen lefut, a következő kimenet jelenik meg, amikor futtatja a kódot a böngészőben.
output:
A kimenetből,
- Látható, hogy a sok tizedesvesszőt tartalmazó tutorialID változóban átadott szám 2 tizedesjegyre korlátozódott az alkalmazott 2 szűrő miatt.
Valutaszűrő az AngularJS-ben
Ez a szűrő egy pénznemszűrőt számmá formáz.
Tegyük fel, hogy ha egy számot szeretne megjeleníteni olyan pénznemben, mint például $, akkor ez a szűrő használható.
Az alábbi példában egy vezérlőt fogunk használni, hogy számot küldjünk egy nézetnek a hatókör objektumon keresztül. Ezután egy szűrőt használunk a nézetben az aktuális szűrő alkalmazásához.
<!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>
Kód Magyarázat
- Itt egy számot adunk át a tutorialprice nevű tagváltozóban, és csatoljuk a hatókör objektumhoz.
- A tutorialprice tagváltozót használjuk, és egy szűrőszimbólumot (|) helyezünk el a pénznemszűrő mellett. Vegye figyelembe, hogy az alkalmazott pénznem a gépen alkalmazott nyelvi beállításoktól függ.
Ha a kód sikeresen lefut, a következő kimenet jelenik meg, amikor futtatja a kódot a böngészőben.
output:
A kimenetből
- Látható, hogy a valutaszimbólum hozzá lett fűzve a tutorialprice változóban átadott számhoz.
- Esetünkben, mivel a nyelvi beállítások angol (Egyesült Államok), pénznemként a $ szimbólum kerül beillesztésre.
JSON-szűrő az AngularJS-ben
Ez a szűrő formázza a JSON mint a bemenet, és az AngularJS JSON szűrőt alkalmazza, hogy a kimenetet JSON-ban adja meg.
Az alábbi példában egy vezérlőt fogunk használni, hogy egy JSON típusú objektumot küldjünk egy nézetnek a hatókör objektumon keresztül. Ezután egy szűrőt használunk a nézetben a JSON-szűrő alkalmazásához.
<!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>
Kód Magyarázat
- Itt adunk át egy számot egy „oktatóprogram” nevű tagváltozóban, és csatoljuk a hatókör objektumhoz. Ez a tagváltozó tartalmaz egy JSON típusú oktatói azonosító: 12 és TutorialName: "Angular" karakterláncot.
- A tagváltozó oktatóanyagát használjuk, és egy szűrőszimbólumot (|) helyezünk el a JSON-szűrő mellett.
Ha a kód sikeresen lefut, a következő kimenet jelenik meg, amikor futtatja a kódot a böngészőben.
output:
A kimenetből,
- Látható, hogy a JSON, mint egy karakterlánc, elemzésre kerül, és megfelelő JSON-objektumot jelenít meg a böngészőben.
Összegzésként
- A szűrők arra szolgálnak, hogy módosítsák a kimenet felhasználó számára történő megjelenítését.
- Az Angular beépített szűrőket kínál, például a kis- és nagybetűs szűrőket, amelyek a karakterláncok kimenetét kis- és nagybetűsre módosítják.
- Lehetőség van a számok megjelenítési módjának megváltoztatására is a számszűrő használatával, a számban megjelenítendő tizedespontok számának megadásával.
- A valutaszűrővel tetszőleges számhoz hozzá lehet fűzni a pénznem szimbólumát.
- Ha JSON-specifikus kimenetre van szükség, az angular JSON-szűrőt is biztosít bármely JSON-szerű karakterlánc JSON-formátumba való szűréséhez.
- Ha van olyan követelmény, amelyet a szögben meghatározott szűrők egyike sem teljesít, akkor létrehozhatja egyéni szűrőjét, és hozzáadhatja az egyéni kódot, hogy meghatározza a szűrőből kívánt kimenet típusát.