AngularJS 篩檢程式


篩檢程式可以使用一個管道字元(|)添加到運算式和指令中。


AngularJS 篩檢程式

AngularJS 篩檢程式可用於轉換數據:

篩檢程式 描述
currency 格式化數字為貨幣格式。
filter 從數組項中選擇一個子集。
lowercase 格式化字串為小寫。
orderBy 根據某個運算式排列數組。
uppercase 格式化字串為大寫。

運算式中添加篩檢程式

篩檢程式可以通過一個管道字元(|)和一個篩檢程式添加到運算式中。.

(下麵的兩個實例,我們將使用前面章節中提到的 person 控制器)

uppercase 篩檢程式將字串格式化為大寫:

AngularJS 實例

<div ng-app="myApp" ng-controller="personCtrl">

<p>姓名為 {{ lastName | uppercase }}</p>

</div>

lowercase 篩檢程式將字串格式化為小寫:

AngularJS 實例

<div ng-app="myApp" ng-controller="personCtrl">

<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>


向指令添加篩檢程式

篩檢程式可以通過一個管道字元(|)和一個篩檢程式添加到指令中。

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>


過濾輸入

輸入篩檢程式可以通過一個管道字元(|)和一個篩檢程式添加到指令中,該篩檢程式後跟一個冒號和一個模型名稱。

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>


自定義篩檢程式

以下實例自定義一個篩檢程式 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(""); } });