AngularJS-filtre og AngularJS-tilpasset filter med eksempel
Hvad er Filter i AngularJS?
A Filtrer i AngularJS hjรฆlper med at formatere vรฆrdien af โโet udtryk, der skal vises for brugeren uden at รฆndre det originale format. Hvis du for eksempel vil have din streng med enten smรฅ eller store bogstaver, kan du gรธre det ved hjรฆlp af filtre. Der er indbyggede filtre sรฅsom 'smรฅ bogstaver', 'store bogstaver', som kan hente smรฅ bogstaver og store bogstaver i overensstemmelse hermed.
AngularJS brugerdefineret filter
Nogle gange kan de indbyggede filtre i Angular ikke opfylde behovene eller kravene til filtrering af output. I et sรฅdant tilfรฆlde kan der oprettes et brugerdefineret AngularJS-filter, som kan sende output pรฅ den nรธdvendige mรฅde.
Tilsvarende kan du bruge andre filtre til tal. I lรธbet af denne tutorial vil vi se de forskellige standard indbyggede filtre, der er tilgรฆngelige i Angular.
Sรฅdan opretter du brugerdefineret filter i AngularJS
I nedenstรฅende brugerdefinerede filter AngularJS eksempel vil vi sende en streng til visningen fra controlleren via scope-objektet, men vi รธnsker ikke, at strengen skal vises, som den er.
Vi vil sikre, at nรฅr vi viser strengen, sender vi et brugerdefineret filter ind AngularJS, som vil tilfรธje en anden streng og vise den fรฆrdige streng for brugeren.
<!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
- Her sender vi en streng "Angular" i en medlemsvariabel kaldet tutorial og vedhรฆfter den til scope-objektet.
- Angular leverer filtertjenesten, som kan bruges til at oprette vores brugerdefinerede filter. 'Demofilteret' er et navn givet til vores filter.
- Dette er standardmรฅden, hvorpรฅ tilpassede filtre i AngularJS defineres, hvor en funktion returneres. Denne funktion er det, der indeholder den brugerdefinerede kode til at oprette det brugerdefinerede filter. I vores funktion tager vi en streng "Angular", som sendes fra vores visning til filteret, og tilfรธjer strengen "Tutorial" hertil.
- Vi bruger vores Demofilter pรฅ vores medlemsvariabel, som blev sendt fra controlleren til visningen.
Hvis koden eksekveres med succes, vil fรธlgende output blive vist, nรฅr du kรธrer din kode i browseren.
Output:
Fra udgangen,
- Det kan ses, at vores brugerdefinerede filter er blevet anvendt og
- Ordet 'Tutorial' er blevet tilfรธjet i slutningen af โโstrengen, som blev videregivet i medlemsvariabel tutorial.
Filter med smรฅ bogstaver i AngularJS
Dette filter tager et strengoutput og formaterer strengen og viser alle tegnene i strengen som smรฅ bogstaver.
Lad os se pรฅ et eksempel pรฅ AngularJS-filtre med indstillingen AngularJS til smรฅ bogstaver.
I nedenstรฅende eksempel vil vi bruge en controller til at sende en streng til en visning via scope-objektet. Vi vil derefter bruge et filter i visningen til at konvertere strengen til smรฅ bogstaver.
<!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
- Her sender vi en streng, som er en kombination af smรฅ og store bogstaver i en medlemsvariabel kaldet "tutorialName", og vedhรฆfter den til scope-objektet. Vรฆrdien af โโden streng, der sendes, er "AngularJS".
- Vi bruger medlemsvariablen "tutorialName" og sรฆtter et filtersymbol (|), hvilket betyder, at outputtet skal รฆndres ved at bruge et filter. Vi bruger derefter nรธgleordet med smรฅ bogstaver til at sige at bruge det indbyggede filter til at udskrive hele strengen med smรฅ bogstaver.
Hvis koden eksekveres med succes, vil fรธlgende output blive vist, nรฅr du kรธrer din kode i browseren.
Output:
Fra udgangen
- Det kan ses, at strengen "AngularJS", som blev sendt i variablen tutorialName, som var en kombination af smรฅ og store bogstaver, er blevet udfรธrt.
- Efter udfรธrelse er det endelige output med smรฅ bogstaver som vist ovenfor.
Stort filter i AngularJS
Dette filter ligner filteret med smรฅ bogstaver; forskellen er, at det tager et strengoutput og formaterer strengen og viser alle tegnene i strengen som store bogstaver.
Lad os se pรฅ et eksempel pรฅ filter AngularJS med store bogstaver med smรฅ bogstaver.
I AngularJS-eksemplet nedenfor vil vi bruge en controller til at sende en streng til en visning via scope-objektet. Vi vil derefter bruge et filter i visningen til at konvertere strengen til store bogstaver.
<!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
- Her sender vi en streng, som er en kombination af smรฅ og store bogstaver "Angular JS" i en medlemsvariabel kaldet "tutorialName" og vedhรฆfter den til scope-objektet.
- Vi bruger medlemsvariablen "tutorialName" og sรฆtter et filtersymbol (|), hvilket betyder, at outputtet skal รฆndres ved at bruge et filter. Vi bruger sรฅ nรธgleordet med store bogstaver til at sige at bruge det indbyggede filter til at udskrive hele strengen med store bogstaver.
Hvis koden eksekveres med succes, vil fรธlgende output blive vist, nรฅr du kรธrer din kode i browseren.
Output:
Fra udgangen,
- Det kan ses, at strengen, som blev sendt i variablen tutorialName, som var en kombination af smรฅ og store bogstaver, er blevet udskrevet med store bogstaver.
Nummerfilter i AngularJS
Dette filter formaterer et tal og kan anvende en grรฆnse for decimalerne for et tal.
Lad os se pรฅ et eksempel pรฅ AngularJS-filtre med nummerindstillingen.
I eksemplet nedenfor,
Vi รธnskede at vise, hvordan vi kan bruge talfilteret til at formatere et tal, der skal vises med en begrรฆnsning pรฅ 2 decimaler.
Vi vil bruge en controller til at sende et nummer til en visning via scope-objektet. Vi vil derefter bruge et filter i visningen til at anvende nummerfilteret.
<!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
- Her sender vi et tal med et stรธrre antal decimaler i en medlemsvariabel kaldet tutorialID og knytter det til scope-objektet.
- Vi bruger medlemsvariablen tutorialID og sรฆtter et filtersymbol (|) sammen med nummerfilteret. Nu i nummer:2 angiver de to, at filteret skal begrรฆnse antallet af decimaler til 2.
Hvis koden eksekveres med succes, vil fรธlgende output blive vist, nรฅr du kรธrer din kode i browseren.
Output:
Fra udgangen,
- Det kan ses, at tallet, som blev bestรฅet i variablen tutorialID, som havde et stort antal decimaler, er blevet begrรฆnset til 2 decimaler pรฅ grund af antallet: 2 filtre, der blev anvendt.
Valutafilter i AngularJS
Dette filter formaterer et valutafilter til et tal.
Antag, at hvis du รธnsker at vise et tal med en valuta sรฅsom $, sรฅ kan dette filter bruges.
I nedenstรฅende eksempel vil vi bruge en controller til at sende et nummer til en visning via scope-objektet. Vi vil derefter bruge et filter i visningen til at anvende det aktuelle filter.
<!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
- Her sender vi et tal i en medlemsvariabel kaldet tutorialprice og vedhรฆfter det til scope-objektet.
- Vi bruger medlemsvariablen tutorialprice og sรฆtter et filtersymbol (|) sammen med valutafilteret. Bemรฆrk, at den anvendte valuta afhรฆnger af de sprogindstillinger, der anvendes pรฅ maskinen.
Hvis koden eksekveres med succes, vil fรธlgende output blive vist, nรฅr du kรธrer din kode i browseren.
Output:
Fra udgangen
- Det kan ses, at valutasymbolet er blevet tilfรธjet til tallet, som blev bestรฅet i den variable tutorialpris.
- I vores tilfรฆlde, da sprogindstillingerne er engelsk (USA), er symbolet $ indsat som valuta.
JSON-filter i AngularJS
Dette filter formaterer en JSON ligesom input og anvender AngularJS JSON-filteret for at give output i JSON.
I eksemplet nedenfor vil vi bruge en controller til at sende et JSON-objekt til en visning via scope-objektet. Vi vil derefter bruge et filter i visningen til at anvende JSON-filteret.
<!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
- Her sender vi et tal i en medlemsvariabel kaldet "tutorial" og vedhรฆfter det til scope-objektet. Denne medlemsvariabel indeholder en JSON-typestreng af Tutorial ID:12 og TutorialName:"Angular".
- Vi bruger medlemsvariabeltutorialen og sรฆtter et filtersymbol (|) sammen med JSON-filteret.
Hvis koden eksekveres med succes, vil fรธlgende output blive vist, nรฅr du kรธrer din kode i browseren.
Output:
Fra udgangen,
- Det kan ses, at JSON som en streng parses og viser et korrekt JSON-objekt i browseren.
Resumรฉ
- Filtre bruges til at รฆndre den mรฅde, outputtet vises pรฅ for brugeren.
- Angular har indbyggede filtre sรฅsom smรฅ og store filtre for at รฆndre outputtet af strenge til henholdsvis smรฅ og store bogstaver.
- Der er ogsรฅ en bestemmelse om at รฆndre den mรฅde, tal vises pรฅ ved at bruge talfilteret ved at angive antallet af decimaler, der skal vises i tallet.
- Man kan ogsรฅ bruge valutafilteret til at tilfรธje valutasymbolet til ethvert tal.
- Hvis der er et krav om at have JSON-specifikt output, giver angular ogsรฅ JSON-filteret til at filtrere enhver JSON-lignende streng til JSON-format.
- Hvis der er et krav, der ikke er opfyldt af nogen af โโfiltrene defineret i vinkel, sรฅ kan du oprette dit brugerdefinerede filter og tilfรธje din brugerdefinerede kode for at bestemme den type output, du รธnsker fra filteret.












