{% raw %}
# AngularJS 過濾器
過濾器可以使用一個管道字符(|)添加到表達式和指令中。
## AngularJS 過濾器
AngularJS 過濾器可用于轉換數據:
| 過濾器 | 描述 |
| --- | --- |
| currency | 格式化數字為貨幣格式。 |
| filter | 從數組項中選擇一個子集。 |
| lowercase | 格式化字符串為小寫。 |
| orderBy | 根據某個表達式排列數組。 |
| uppercase | 格式化字符串為大寫。 |
## 向表達式添加過濾器
過濾器可以通過一個管道字符(|)和一個過濾器添加到表達式中。
(下面的兩個實例,我們將使用前面章節中提到的 person 控制器)
**uppercase** 過濾器格式化字符串為大寫:
## AngularJS 實例
```
<div ng-app="" ng-controller="personController">
<p>姓名為 {{ person.lastName | uppercase }}</p>
</div>
```
**lowercase** 過濾器格式化字符串為小寫:
## AngularJS 實例
```
<div ng-app="" ng-controller="personController"">
<p>姓名為 {{ person.lastName | lowercase }}</p>
</div>
```
## currency 過濾器
**currency** 過濾器格式化數字為貨幣格式:
## AngularJS 實例
```
<div ng-app="" ng-controller="costController">
數量:<input type="number" ng-model="quantity">
價格:<input type="number" ng-model="price">
<p>總價 = {{ (quantity * price) | currency }}</p>
</div>
```
## 向指令添加過濾器
過濾器可以通過一個管道字符(|)和一個過濾器添加到指令中。
**orderBy** 過濾器根據某個表達式排列數組:
## AngularJS 實例
```
<div ng-app="" ng-controller="namesController">
<p>循環對象:</p>
<ul>
? <li ng-repeat="x in names | orderBy:'country'">
??? {{ x.name + ', ' + x.country }}
? </li>
</ul>
<div>
```
## 過濾輸入
輸入過濾器可以通過一個管道字符(|)和一個過濾器添加到指令中,該過濾器后跟一個冒號和一個模型名稱。
**filter** 過濾器從數組中選擇一個子集:
## AngularJS 實例
```
<div ng-app="" ng-controller="namesController">
<p>輸入過濾:</p>
<p><input type="text" ng-model="name"></p>
<ul>
? <li ng-repeat="x in names | filter:name | orderBy:'country'">
??? {{ (x.name | uppercase) + ', ' + x.country }}
? </li>
</ul>
</div>
```
{% endraw %}