AngularJS suodattimet
- Edellinen sivu AngularJS konteksti
- Seuraava sivu AngularJS palvelut
Voit lisätä AngularJS:ään suodattimia datan muotoiluun.
AngularJS suodattimet
AngularJS tarjoaa suodattimia datan muuntamiseen:
currency
Muunna numero valuuttamuotoondate
Muunna päivämäärä tiettyyn muotoonfilter
Valitse taulukosta alijoukkojson
Muunna objekti JSON-merkkijonoksilimitTo
Rajoita taulukko/merkkijono tiettyyn määrään elementtejä/merkkejälowercase
Muunna merkkijono pieniksi kirjaimiksinumber
Muunna numero merkkijonoksiorderBy
Järjestä taulukko lausekkeen avullauppercase
Muunna merkkijono isoksi kirjaimeksi
Lisää suodattimen lauseeseen
Voit lisätä suodattimen lauseeseen käyttämällä putkiruutua | ja sitten suodatinta.
uppercase
Suodattimet muuntavat merkkijonon isoksi kirjaimiksi:
Esimerkki
<div ng-app="myApp" ng-controller="personCtrl"> <p>Nimi on {{ lastName | uppercase }}</p> </div>
lowercase
Suodattimet muuntavat merkkijonon pieniksi kirjaimiksi:
Esimerkki
<div ng-app="myApp" ng-controller="personCtrl"> <p>Nimi on {{ lastName | lowercase }}</p> </div>
lisätäksesi suodattimen ohjeeseen
käyttämällä putkimerkkiä |
sekä suodattimia, joita voidaan lisätä ohjeisiin, esimerkiksi ng-repeat
:
Esimerkki
orderBy-suodattimet järjestävät taulukon:
<div ng-app="myApp" ng-controller="namesCtrl"> <ul> <li ng-repeat="x in names | orderBy:'country'"> {{ x.name + ', ' + x.country }} </li> </ul> </div>
currency-suodattimet
currency
Suodattimet muuntavat luvut valuutaksi:
Esimerkki
<div ng-app="myApp" ng-controller="costCtrl"> <h1>Hinta: {{ price | currency }}</h1> </div>
Lisätietoja currency-suodattimesta löydät AngularJS currency-suodattimen ohjeesta.
filter-suodattimet
filter
Suodattimet valitsevat taulukon alajoukon.
filter
Suodattimet voidaan käyttää vain taulukoissa, ja ne palauttavat vain vastaavien kohteiden taulukon.
Esimerkki
Palauttaa nimet, jotka sisältävät kirjaimen "i":
<div ng-app="myApp" ng-controller="namesCtrl"> <ul> <li ng-repeat="x in names | filter : 'i'"> {{ x }} </li> </ul> </div>
Lisätietoja filter-suodattimesta löydät AngularJS filter-suodattimen ohjeesta.
Suodata taulukko käyttäjän syötteen perusteella
Asettamalla syötealaalle ng-model
Ohje, voimme käyttää syötealaan syötetyn arvon suodattimen lausekkeena.
Syötä kirjain syötealaan, ja luettelo supistuu/kokoontuu vastaavasti:
- Jani
- Carl
- Margareth
- Hege
- Joe
- Gustav
- Birgit
- Mary
- Kai
Esimerkki
<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>
Järjestä taulukko käyttäjän syötteen perusteella
Napsauttamalla taulukon otsikkoa voit muuttaa järjestysjärjestystä:
Nimi Maa Jani Norja Carl Ruotsi Margareth Englanti Hege Norja Joe Tanska Gustav Ruotsi Birgit Tanska Mary Englanti Kai NorjaLisäämällä taulukon otsikkoon ng-click
Ohje, voimme suorittaa funktion, joka muuttaa taulukon järjestysjärjestystä:
Esimerkki
<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:'Norway'}, {name:'Carl',country:'Sweden'}, {name:'Margareth',country:'England'}, {name:'Hege',country:'Norway'}, {name:'Joe',country:'Denmark'}, {name:'Gustav',country:'Sweden'}, {name:'Birgit',country:'Denmark'}, {name:'Mary',country:'England'}, {name:'Kai',country:'Norway'} }; $scope.orderByMe = function(x) { $scope.myOrderBy = x; } }); </script>
Mukautettu suodatin
Voit luoda oman suodattimen rekisteröimällä uuden suodattimen tehtaan moduuliin:
Esimerkki
Luo mukautettu suodatin nimeltä "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
Suodattimet muotoilevat joka toisen kirjaimen isoksi.
- Edellinen sivu AngularJS konteksti
- Seuraava sivu AngularJS palvelut