AngularJS filter 過濾器
定義和用法
filter
過濾器允許我們過濾數組,并返回僅包含匹配項的數組。
此過濾器只能用于數組。
相關頁面
AngularJS 教程:Angular 過濾器
實例
例子 1
顯示包含字母 "A" 的項目:
<div ng-app="myApp" ng-controller="arrCtrl"> <ul> <li ng-repeat="x in cars | filter : 'A'">{{x}}</li> </ul> </div> <script> var app = angular.module('myApp', []); app.controller('arrCtrl', function($scope) { $scope.cars = ["Aston Martin", "Audi", "Bentley", "BMW", "Bugatti"]; }); </script>
例子 2
使用對象作為過濾器:
<div ng-app="myApp" ng-controller="arrCtrl"> <ul> <li ng-repeat="x in customers | filter : {'name' : 'O', 'city' : 'London'}"> {{x.name + ", " + x.city}} </li> </ul> </div> <script> var app = angular.module('myApp', []); app.controller('arrCtrl', function($scope) { $scope.customers = [ {"name" : "Alfreds Futterkiste", "city" : "Berlin"}, {"name" : "Around the Horn", "city" : "London"}, {"name" : "B's Beverages", "city" : "London"}, {"name" : "Bolido Comidas preparadas", "city" : "Madrid"}, {"name" : "Bon app", "city" : "Marseille"}, {"name" : "Bottom-Dollar Marketse" ,"city" : "Tsawassen"}, {"name" : "Cactus Comidas para llevar", "city" : "Buenos Aires"} ]; }); </script>
例子 3
進行“嚴格”比較,除非值與表達式完全相同,否則不會返回匹配項:
<div ng-app="myApp" ng-controller="arrCtrl"> <ul> <li ng-repeat="x in customers | filter : 'London' : true"> {{x.name + ", " + x.city}} </li> </ul> </div> <script> var app = angular.module('myApp', []); app.controller('arrCtrl', function($scope) { $scope.customers = [ {"name" : "London Food", "city" : "London"}, {"name" : "London Catering", "city" : "London City"}, {"name" : "London Travel", "city" : "Heathrow, London"} ]; }); </script>
語法
{{ arrayexpression | filter : expression : comparator }}
參數
參數 | 描述 |
---|---|
expression |
用于從數組中選擇項目時所使用的表達式。表達式的類型可以是: 字符串:將返回與字符串匹配的數組項目。 對象:對象是在數組中搜索的模式。例如:filter: {"name" : "H", "city": "London"} 將返回名稱中包含字母 "H" 且城市包含 "London" 的數組項目。請參閱上面的示例。 函數:一個將為每個數組項目調用的函數,并且函數返回 true 的項目將出現在結果數組中。 |
comparator |
可選。定義比較的嚴格程度。值可以是: true:僅當數組項目的值與我們要比較的值完全相同時才返回匹配項。 false:如果數組項目的值包含要比較的值,則返回匹配項。此比較不區分大小寫。這是默認值。 函數:我們可以定義一個函數來確定什么被視為匹配或不匹配。 |