AngularJS 篩檢程式
篩檢程式可以使用一個管道字元(|)添加到運算式和指令中。
AngularJS 篩檢程式
AngularJS 篩檢程式可用於轉換數據:
篩檢程式 | 描述 |
---|---|
currency | 格式化數字為貨幣格式。 |
filter | 從數組項中選擇一個子集。 |
lowercase | 格式化字串為小寫。 |
orderBy | 根據某個運算式排列數組。 |
uppercase | 格式化字串為大寫。 |
運算式中添加篩檢程式
篩檢程式可以通過一個管道字元(|)和一個篩檢程式添加到運算式中。.
(下麵的兩個實例,我們將使用前面章節中提到的 person 控制器)
uppercase 篩檢程式將字串格式化為大寫:
AngularJS 實例
<div ng-app="myApp" ng-controller="personCtrl">
<p>姓名為 {{ lastName | uppercase }}</p>
</div>
<p>姓名為 {{ lastName | uppercase }}</p>
</div>
lowercase 篩檢程式將字串格式化為小寫:
AngularJS 實例
<div ng-app="myApp" ng-controller="personCtrl">
<p>姓名為 {{ lastName | lowercase }}</p>
</div>
<p>姓名為 {{ lastName | lowercase }}</p>
</div>
currency 篩檢程式
currency 篩檢程式將數字格式化為貨幣格式:
AngularJS 實例
<div ng-app="myApp" ng-controller="costCtrl">
<input type="number" ng-model="quantity">
<input type="number" ng-model="price">
<p>總價 = {{ (quantity * price) | currency }}</p>
</div>
<input type="number" ng-model="quantity">
<input type="number" ng-model="price">
<p>總價 = {{ (quantity * price) | currency }}</p>
</div>
向指令添加篩檢程式
篩檢程式可以通過一個管道字元(|)和一個篩檢程式添加到指令中。
orderBy 篩檢程式根據運算式排列數組:
AngularJS 實例
<div ng-app="myApp" ng-controller="namesCtrl">
<ul>
<li ng-repeat="x in names | orderBy:'country'">
{{ x.name + ', ' + x.country }}
</li>
</ul>
</div>
<ul>
<li ng-repeat="x in names | orderBy:'country'">
{{ x.name + ', ' + x.country }}
</li>
</ul>
</div>
過濾輸入
輸入篩檢程式可以通過一個管道字元(|)和一個篩檢程式添加到指令中,該篩檢程式後跟一個冒號和一個模型名稱。
filter 篩檢程式從數組中選擇一個子集:
AngularJS 實例
<div ng-app="myApp" ng-controller="namesCtrl">
<p><input type="text" ng-model="test"></p>
<ul>
<li ng-repeat="x in names | filter:test | orderBy:'country'">
{{ (x.name | uppercase) + ', ' + x.country }}
</li>
</ul>
</div>
<p><input type="text" ng-model="test"></p>
<ul>
<li ng-repeat="x in names | filter:test | orderBy:'country'">
{{ (x.name | uppercase) + ', ' + x.country }}
</li>
</ul>
</div>
自定義篩檢程式
以下實例自定義一個篩檢程式 reverse,將字串反轉:
AngularJS 實例
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.msg = "zaixian";
});
app.filter('reverse', function() { //可以注入依賴
return function(text) {
return text.split("").reverse().join("");
}
});