Bộ lọc AngularJS
- Trang trước Tính năng AngularJS
- Trang tiếp theo Dịch vụ AngularJS
Bạn có thể thêm bộ lọc vào AngularJS để định dạng dữ liệu.
Bộ lọc AngularJS
AngularJS cung cấp bộ lọc để chuyển đổi dữ liệu:
currency
Định dạng số thành định dạng tiền tệdate
Định dạng ngày theo định dạng được chỉ địnhfilter
Chọn một tập con từ mảngjson
Định dạng đối tượng thành chuỗi JSONlimitTo
Giới hạn mảng/chuỗi thành số lượng phần tử/ký tự được chỉ địnhlowercase
Định dạng chuỗi thành chữ thườngnumber
Định dạng số thành chuỗiorderBy
Sắp xếp mảng thông qua biểu thứcuppercase
Định dạng chuỗi thành chữ hoa
Thêm bộ lọc vào biểu thức
Bạn có thể sử dụng dấu管道 | để thêm bộ lọc vào biểu thức, sau đó là một bộ lọc.
uppercase
Bộ lọc sẽ định dạng chuỗi thành chữ hoa:
Mẫu
<div ng-app="myApp" ng-controller="personCtrl"> <p>Tên là {{ lastName | uppercase }}</p> </div>
lowercase
Bộ lọc sẽ định dạng chuỗi thành chữ thường:
Mẫu
<div ng-app="myApp" ng-controller="personCtrl"> <p>Tên là {{ lastName | lowercase }}</p> </div>
Thêm bộ lọc vào câu lệnh
Bằng cách sử dụng ký tự ống dẫn |
theo sau bộ lọc, có thể thêm bộ lọc vào câu lệnh, ví dụ ng-repeat
:
Mẫu
Bộ lọc orderBy sẽ sắp xếp mảng:
<div ng-app="myApp" ng-controller="namesCtrl"> <ul> <li ng-repeat="x in names | orderBy:'country'"> {{ x.name + ', ' + x.country }} </li> </ul> </div>
Bộ lọc currency
currency
Bộ lọc sẽ định dạng số thành tiền tệ:
Mẫu
<div ng-app="myApp" ng-controller="costCtrl"> <h1>Giá: {{ price | currency }}</h1> </div>
Để biết thêm thông tin về bộ lọc currency, hãy xem tài liệu tham khảo bộ lọc currency của AngularJS.
Bộ lọc filter
filter
Bộ lọc chọn tập con của mảng.
filter
Bộ lọc chỉ có thể được sử dụng cho mảng, nó trả về một mảng chỉ chứa các phần tử khớp.
Mẫu
Trả về tên chứa chữ cái "i":
<div ng-app="myApp" ng-controller="namesCtrl"> <ul> <li ng-repeat="x in names | filter : 'i'"> {{ x }} </li> </ul> </div>
Để biết thêm thông tin về bộ lọc filter, hãy xem tài liệu tham khảo bộ lọc filter của AngularJS.
Lọc mảng dựa trên đầu vào của người dùng
Bằng cách thiết lập ng-model
Câu lệnh, chúng ta có thể sử dụng giá trị của trường nhập làm biểu thức trong bộ lọc.
Nhập một chữ cái vào trường nhập, danh sách sẽ được thu hẹp hoặc mở rộng dựa trên phần trùng khớp:
- Jani
- Carl
- Margareth
- Hege
- Joe
- Gustav
- Birgit
- Mary
- Kai
Mẫu
<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>
Sắp xếp mảng dựa trên đầu vào của người dùng
Bấm vào tiêu đề bảng để thay đổi thứ tự sắp xếp:
Tên Quốc gia Jani Na Uy Carl Thụy Điển Margareth Anh Hege Na Uy Joe Đan Mạch Gustav Thụy Điển Birgit Đan Mạch Mary Anh Kai Na UyBằng cách thêm vào tiêu đề bảng ng-click
Câu lệnh, chúng ta có thể chạy một hàm, hàm đó sẽ thay đổi thứ tự sắp xếp của mảng:
Mẫu
<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>
Bộ lọc tùy chỉnh
Bạn có thể tạo bộ lọc của riêng mình bằng cách đăng ký một hàm nhà máy bộ lọc mới cho mô-đun:
Mẫu
Tạo một bộ lọc tùy chỉnh có tên là "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
Bộ lọc sẽ định dạng in hoa mỗi ký tự thứ hai.
- Trang trước Tính năng AngularJS
- Trang tiếp theo Dịch vụ AngularJS