詳解AngularJS Filter(過(guò)濾器)用法
AngularJS的filter,中文名“過(guò)濾器”是用來(lái)過(guò)濾變量的值,或者格式化輸出,得到自己所期望的結(jié)果或格式的東東。
Filter簡(jiǎn)介
Filter是用來(lái)格式化數(shù)據(jù)用的。
Filter的基本原型( ‘|' 類(lèi)似于Linux中的管道模式):
{{ expression | filter }}
Filter可以被鏈?zhǔn)绞褂茫催B續(xù)使用多個(gè)filter):
{{ expression | filter1 | filter2 | ... }}
Filter也可以指定多個(gè)參數(shù):
{{ expression | filter:argument1:argument2:... }}
一、在視圖模板(View Template)中使用
在表達(dá)式中應(yīng)用Filters (過(guò)濾器)
需要遵循格式如下:
{{ expression | filter }} 即 {{ 表達(dá)式 | 過(guò)濾器 }}
例如:{{ 12 | currency }} 輸出為 $12.00
在輸出結(jié)果中應(yīng)用Filters (過(guò)濾器)
通俗點(diǎn)講就是Filter的疊加--前一filter的輸出結(jié)果作為后一filter的輸入數(shù)據(jù)源.
需要遵循格式如下:
{{ expression | filter1 | filter2 | ... }} 即 表達(dá)式(expression)使用filter1過(guò)濾后再使用filter2過(guò)濾...
帶參數(shù)的Filter
Filter后面可以跟一個(gè)或多個(gè)參數(shù),用來(lái)幫助實(shí)現(xiàn)特殊要求、需求的filter.
需要遵循格式如下:
{{ expression | filter:argument1:argument2:... }}
示例: {{ 1234 | number:2 }} = 1,234.00
二、使用 AngluarJS 內(nèi)置Filter
AngularJS為我們提供了9個(gè)內(nèi)建的過(guò)濾器
分別是currency, date, filter, json, limitTo, uppercase, lowercase, number, orderBy。
具體的用法在AngularJS的文檔中都有詳細(xì)說(shuō)明。下面只說(shuō)幾個(gè)常用的。
currency filter(貨幣過(guò)濾器)
currency – 用來(lái)將變量轉(zhuǎn)換成貨幣表現(xiàn)形式
如:{{ amount | currency}}
uppercase/lowercase filter(字母大小寫(xiě)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, 這時(shí)候你需要將依賴(lài)的filter名字加入到controller, service或者directive的依賴(lài)中去。
在controller中直接使用filter, 這樣controller可以根據(jù)自身需要而適時(shí)調(diào)用filter
三、自定義filter(過(guò)濾器)
AngularJS編寫(xiě)自定義過(guò)濾器的形式和AngularJS的factory service非常相像,一定記得它返回一個(gè)對(duì)象或者是一個(gè)函數(shù)即可,編寫(xiě)的時(shí)候,只需要一個(gè)帶有一個(gè)以上參數(shù)的函數(shù)即可。
格式大致如:
app.filter('filter(過(guò)濾器)名稱(chēng)',function(){ return function(需要過(guò)濾的對(duì)象,過(guò)濾器參數(shù)1,過(guò)濾器參數(shù)2,...){ //...執(zhí)行業(yè)務(wù)邏輯代碼 return 處理后的對(duì)象; } });
- Javascript中關(guān)于Array.filter()的妙用詳解
- AngularJS中的過(guò)濾器filter用法完全解析
- JavaScript 數(shù)組some()和filter()的用法及區(qū)別
- jquery.fastLiveFilter.js實(shí)現(xiàn)輸入自動(dòng)過(guò)濾的方法
- JavaScript中利用Array filter() 方法壓縮稀疏數(shù)組
- JavaScript之filter_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- 詳解AngularJS中的filter過(guò)濾器用法
- Vue.js報(bào)錯(cuò)Failed to resolve filter問(wèn)題的解決方法
- AngularJS過(guò)濾器filter用法總結(jié)
- JavaScript中filter的用法實(shí)例分析
相關(guān)文章
Angular2中監(jiān)聽(tīng)數(shù)據(jù)更新的方法
今天小編就為大家分享一篇Angular2中監(jiān)聽(tīng)數(shù)據(jù)更新的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08Angular 2父子組件數(shù)據(jù)傳遞之@Input和@Output詳解(下)
這篇文章主要給大家介紹了關(guān)于Angular 2父子組件數(shù)據(jù)傳遞之@Input和@Output的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-07-07AngularJS 過(guò)濾與排序詳解及實(shí)例代碼
這篇文章主要介紹了AngularJS 過(guò)濾與排序,這里整理了詳細(xì)的資料及簡(jiǎn)單實(shí)例代碼,有需要的小伙伴可以參考下2016-09-09Angular ElementRef簡(jiǎn)介及其使用
這篇文章主要介紹了Angular ElementRef簡(jiǎn)介及其使用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-10-10AngularJS使用ui-route實(shí)現(xiàn)多層嵌套路由的示例
這篇文章主要介紹了AngularJS使用ui-route實(shí)現(xiàn)多層嵌套路由的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-01-01