Filtrowanie AngularJS
- Poprzednia strona Zakresy AngularJS
- Następna strona Usługi AngularJS
Można dodać filtry w AngularJS do formatowania danych.
Filtrowanie AngularJS
AngularJS oferuje filtry do przekształcania danych:
currency
Formatowanie liczby do formatu walutydate
Formatowanie daty do określonego formatufilter
Wybór podzbioru z tablicyjson
Formatowanie obiektu do ciągu znaków JSONlimitTo
Ograniczenie tablicy/ciągu znaków do określonej liczby elementów/znakówlowercase
Formatowanie ciągu znaków do małych liternumber
Formatowanie liczby do ciągu znakóworderBy
Sortowanie tablicy za pomocą wyrażeniauppercase
Formatowanie ciągu znaków do wielkich liter
Dodawanie filtra do wyrażenia
Można dodać filtr do wyrażenia za pomocą znaku |, a następnie innego filtra.
uppercase
Filtrator formatuje ciąg znaków do wielkich liter:
Przykład
<div ng-app="myApp" ng-controller="personCtrl"> <p>Nazwa to {{ lastName | uppercase }}</p> </div>
lowercase
Filtrator formatuje ciąg znaków do małych liter:
Przykład
<div ng-app="myApp" ng-controller="personCtrl"> <p>Nazwisko to {{ lastName | lowercase }}</p> </div>
dodając filtr do polecenia
używając znaku potoku |
po którym można dodać filtr do polecenia, na przykład ng-repeat
:
Przykład
Filtr orderBy sortuje tablicę:
<div ng-app="myApp" ng-controller="namesCtrl"> <ul> <li ng-repeat="x in names | orderBy:'country'"> {{ x.name + ', ' + x.country }} </li> </ul> </div>
Filtr currency
currency
Filtr formatuje liczbę jako walutę:
Przykład
<div ng-app="myApp" ng-controller="costCtrl"> <h1>Cena: {{ price | currency }}</h1> </div>
Dla więcej informacji na temat filtru currency, zobacz nasz przewodnik AngularJS currency.
Filtr filter
filter
Filtr wybiera podzbiór tablicy.
filter
Filtr można używać tylko z tablicami, zwraca on tablicę zawierającą dopasowania.
Przykład
Zwraca nazwy zawierające literę "i":
<div ng-app="myApp" ng-controller="namesCtrl"> <ul> <li ng-repeat="x in names | filter : 'i'"> {{ x }} </li> </ul> </div>
Dla więcej informacji na temat filtru filter, zobacz nasz przewodnik AngularJS filter.
Filtrowanie tablicy na podstawie wprowadzenia użytkownika
ustawiając na polu wprowadzania ng-model
Polecenie, możemy użyć wartości pola wprowadzania jako wyrażenia w filtrze.
Wprowadź literę w polu wprowadzania, lista zostanie zawężona lub rozszerzona na podstawie dopasowań:
- Jani
- Carl
- Margareth
- Hege
- Joe
- Gustav
- Birgit
- Mary
- Kai
Przykład
<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>
Sortowanie tablicy na podstawie wprowadzenia użytkownika
Kliknięcie w nagłówek tabeli zmieni kolejność sortowania:
Name Country Jani Norway Carl Sweden Margareth England Hege Norway Joe Denmark Gustav Sweden Birgit Denmark Mary England Kai Norwaydodając do nagłówka tabeli ng-click
Polecenie, możemy uruchomić funkcję, która zmieni kolejność sortowania tablicy:
Przykład
<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>
Niestandardowy filtr
Możesz utworzyć własny filtr, rejestrując nową funkcję fabryczną filtra w module:
Przykład
Utwórz niestandardowy filtr o nazwie "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
Filtr formatuje co drugi znak do wielkiej litery.
- Poprzednia strona Zakresy AngularJS
- Następna strona Usługi AngularJS