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:如果數組項目的值包含要比較的值,則返回匹配項。此比較不區分大小寫。這是默認值。

函數:我們可以定義一個函數來確定什么被視為匹配或不匹配。