AngularJS filter 过滤器

定义和用法

filter 过滤器允许我们过滤数组,并返回仅包含匹配项的数组。

此过滤器只能用于数组。

相关页面

AngularJS 教程:Penapis 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

Ungkapan yang digunakan untuk memilih projek daripada array. Jenis ungkapan boleh adalah:

String: Akan kembalikan projek array yang sepadan dengan string.

Objek: Objek adalah model yang dicari dalam array. Contohnya: filter: {"name" : "H", "city": "London"} akan kembalikan projek array yang nama mengandungi huruf "H" dan kota mengandungi "London". Lihat contoh di atas.

Fungsi: Fungsi yang akan dipanggil untuk setiap projek array, dan projek yang mengembalikan true akan muncul dalam array hasil.

comparator

Pilihan. Tentukan tingkat pembandingan. Nama nilai boleh adalah:

true: Hanya jika nilai projek array sepenuhnya sepadan dengan nilai yang hendak dibandingkan, maka akan kembalikan item yang sepadan.

false: Jika nilai projek array mengandungi nilai yang hendak dibandingkan, maka akan kembalikan item yang sepadan. Pembandingan ini tidak membezakan huruf besar dan kecil. Ini adalah nilai lalai.

Fungsi: Kita boleh menetapkan fungsi untuk menentukan apa yang dianggap sepadan atau tidak sepadan.