AngularJS filter
- Föregående sida AngularJS scop
- Nästa sida AngularJS tjänster
Man kan lägga till filter i AngularJS för att formatera data.
AngularJS filter
AngularJS erbjuder filter för att konvertera data:
currency
Formatera nummer till valutformatdate
Formatera datum till ett specifikt formatfilter
Välj en delmängd från en arrayjson
Formatera objekt till JSON-strängarlimitTo
Begränsa arrayer/strängar till en specifik mängd element/teckenlowercase
Formatera strängar till små bokstävernumber
Formatera nummer till strängarorderBy
Sortera arrayer genom uttryckuppercase
Formatera strängar till stora bokstäver
Lägg till filter till uttryck
Man kan använda kanalteckenet | för att lägga till filter till uttryck, följt av ett filter.
uppercase
Filtret formaterar strängar till stora bokstäver:
Exempel
<div ng-app="myApp" ng-controller="personCtrl"> <p>Namnet är {{ lastName | uppercase }}</p> </div>
lowercase
Filtret formaterar strängar till små bokstäver:
Exempel
<div ng-app="myApp" ng-controller="personCtrl"> <p>Namnet är {{ lastName | lowercase }}</p> </div>
Lägg till filter till anvisningen
Genom att använda kanaltecknet |
följt av filter, kan du lägga till filter till anvisningen, till exempel ng-repeat
:
Exempel
orderBy-filter sorterar arrayen:
<div ng-app="myApp" ng-controller="namesCtrl"> <ul> <li ng-repeat="x in names | orderBy:'country'"> {{ x.name + ', ' + x.country }} </li> </ul> </div>
currency-filter
currency
Filterna formaterar nummer som valuta:
Exempel
<div ng-app="myApp" ng-controller="costCtrl"> <h1>Pris: {{ price | currency }}</h1> </div>
För mer information om currency-filter, se vår AngularJS currencyfilterreferenshandbok.
filter-filter
filter
Filtre väljer en delmängd av arrayen.
filter
Filtre kan bara användas för arrayer, de returnerar en array som bara innehåller matchande poster.
Exempel
Returnerar namn som innehåller bokstaven "i":
<div ng-app="myApp" ng-controller="namesCtrl"> <ul> <li ng-repeat="x in names | filter : 'i'"> {{ x }} </li> </ul> </div>
För mer information om filterfilter, se vår AngularJS filterfilterreferenshandbok.
Filtrera arrayen baserat på användarinput
Genom att ställa in ng-model
Anvisning, vi kan använda värdet från inmatningsfältet som ett uttryck i filtern.
Skriv in ett tecken i inmatningsfältet, listan kommer att förminska/utöka baserat på matchande poster:
- Jani
- Carl
- Margareth
- Hege
- Joe
- Gustav
- Birgit
- Mary
- Kai
Exempel
<div ng-app="myApp" ng-controller="namesCtrl"> <p><input type="text" ng-model="test"></p> <ul> <li ng-repeat="x in names | filter : test"> {{ x }} </li> </ul> </div>
Sortera arrayen baserat på användarinput
Klicka på rubriken för att ändra sorteringsordningen:
Namn Land Jani Norge Carl Sverige Margareth England Hege Norge Joe Danmark Gustav Sverige Birgit Danmark Mary England Kai NorgeGenom att lägga till i rubriken ng-click
Anvisning, vi kan köra en funktion som ändrar arrayens sorteringsordning:
Exempel
<div ng-app="myApp" ng-controller="namesCtrl"> <table border="1" width="100%"> <tr> <th ng-click="orderByMe('name')">Name</th> <th ng-click="orderByMe('country')">Country</th> </tr> <tr ng-repeat="x in names | orderBy:myOrderBy"> <td>{{x.name}}</td> <td>{{x.country}}</td> </tr> </table> </div> <script> angular.module('myApp', []).controller('namesCtrl', function($scope) { $scope.names = [ {name:'Jani',country:'Norge'}, {name:'Carl',country:'Sverige'}, {name:'Margareth',country:'England'}, {name:'Hege',country:'Norge'}, {name:'Joe',country:'Danmark'}, {name:'Gustav',country:'Sverige'}, {name:'Birgit',country:'Danmark'}, {name:'Mary',country:'England'}, {name:'Kai',country:'Norway'} }; $scope.orderByMe = function(x) { $scope.myOrderBy = x; } }); </script>
Anpassad filter
Du kan skapa din egen filter genom att registrera en ny filter-fabrik-funktion i modulen:
Exempel
Skapa en anpassad filter "myFormat":
<ul ng-app="myApp" ng-controller="namesCtrl"> <li ng-repeat="x in names"> {{x | myFormat}} </li> </ul> <script> var app = angular.module('myApp', []); app.filter('myFormat', function() { return function(x) {}} var i, c, txt = ""; for (i = 0; i < x.length; i++) { c = x[i]; if (i % 2 == 0) { c = c.toUpperCase(); } txt += c; } return txt; }); }); app.controller('namesCtrl', function($scope) { $scope.names = ['Jani', 'Carl', 'Margareth', 'Hege', 'Joe', 'Gustav', 'Birgit', 'Mary', 'Kai']; }); </script>
myFormat
Filter formaterar varannan tecken till versal.
- Föregående sida AngularJS scop
- Nästa sida AngularJS tjänster