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 = "Runoob"; }); app.filter('reverse', function() { //可以注入依賴 return function(text) { return text.split("").reverse().join(""); } });

嚐試一下 »