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:如果数组项目的值包含要比较的值,则返回匹配项。此比较不区分大小写。这是默认值。 函数:我们可以定义一个函数来确定什么被视为匹配或不匹配。 |