詳解AngularJS Filter(過濾器)用法_AngularJS

來源:互聯網
上載者:User

AngularJS的filter,中文名“過濾器”是用來過濾變數的值,或者格式化輸出,得到自己所期望的結果或格式的東東。

Filter簡介

Filter是用來格式化資料用的。

Filter的基本原型( ‘|' 類似於Linux中的管道模式):

{{ expression | filter }}

Filter可以被鏈式使用(即連續使用多個filter):

{{ expression | filter1 | filter2 | ... }}

Filter也可以指定多個參數:

{{ expression | filter:argument1:argument2:... }}

一、在視圖模板(View Template)中使用

在運算式中應用Filters (過濾器)

需要遵循格式如下:

{{ expression | filter }} 即 {{ 運算式 | 過濾器 }}

例如:{{ 12 | currency }} 輸出為 $12.00

在輸出結果中應用Filters (過濾器)

通俗點講就是Filter的疊加--前一filter的輸出結果作為後一filter的輸入資料來源.

需要遵循格式如下:

{{ expression | filter1 | filter2 | ... }} 即 運算式(expression)使用filter1過濾後再使用filter2過濾...

帶參數的Filter

Filter後面可以跟一個或多個參數,用來協助實現特殊要求、需求的filter.

需要遵循格式如下:

{{ expression | filter:argument1:argument2:... }}

樣本: {{ 1234 | number:2 }} = 1,234.00

二、使用 AngluarJS 內建Filter

AngularJS為我們提供了9個內建的過濾器

分別是currency, date, filter, json, limitTo, uppercase, lowercase, number, orderBy。

具體的用法在AngularJS的文檔中都有詳細說明。下面只說幾個常用的。

currency filter(貨幣過濾器)

currency – 用來將變數轉換成貨幣表現形式

如:{{ amount | currency}}

uppercase/lowercase filter(字母大小寫filter)

如:

{{ "lower cap string" | uppercase }}
<input ng-model="userInput"> Uppercased: {{ userInput | uppercase }}

date filter (日期filter)

如:

{{ 1304375948024 | date }}
{{ 1304375948024 | date:"MM/dd/yyyy @ h:mma" }}

json filter

如:

{{ {foo: "bar", baz: 23} | json }}

在controllers, services和drictives中使用filter

可以在AngularJS的controller, service或者driective中使用filter, 這時候你需要將依賴的filter名字加入到controller, service或者directive的依賴中去。

在controller中直接使用filter, 這樣controller可以根據自身需要而適時調用filter

三、自訂filter(過濾器)

AngularJS編寫自訂過濾器的形式和AngularJS的factory service非常相像,一定記得它返回一個對象或者是一個函數即可,編寫的時候,只需要一個帶有一個以上參數的函數即可。

格式大致如:

app.filter('filter(過濾器)名稱',function(){ return function(需要過濾的對象,過濾器參數1,過濾器參數2,...){ //...執行商務邏輯代碼 return 處理後的對象; }}); 


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.