Angular - 過(guò)濾器

什么是過(guò)濾器

過(guò)濾器可以用來(lái)格式化需要展示的數(shù)據(jù)。AngularJS 有很多內(nèi)置過(guò)濾器歹苦,同時(shí)也可以自己創(chuàng)建過(guò)濾器。

如何使用過(guò)濾器

  1. HTML 模板綁定符號(hào) {{}} 中通過(guò) | 來(lái)調(diào)用過(guò)濾器督怜,若需要傳遞參數(shù)殴瘦,過(guò)濾器名字后面以 : 分隔;
    例:
    {{ time | date }}
    {{ time | date : 'yyy-MM-dd' }}
  2. js 代碼中通過(guò) $filter 調(diào)用号杠。
    例:
angular.module('myApp', [])
    .controller('MyCtrl', ['$scope', '$filter', function ($scope, $filter) {
      $scope.time = $filter('date')(1249448523423)
    }]);

內(nèi)置過(guò)濾器

  1. currency
    currency 可以將數(shù)值格式化成貨幣格式(currency允許自定義設(shè)置貨幣符號(hào)蚪腋,默認(rèn)采用客戶端所在區(qū)域貨幣符號(hào))。

  2. date
    date 可以將日期格式化成需要的格式(默認(rèn)采用 mediumDate格式)姨蟋。
    (1). AngularJS內(nèi)置的支持本地化的日期格式:

    • {{ time | date : 'medium' }} => Aug 5, 2009 1:02:03 PM
    • {{ time | date : 'short' }} => 8/5/09 1:02 PM
    • {{ time | date : 'fullDate' }} => Wednesday, August 5, 2009
    • {{ time | date : 'longDate' }} => August 5, 2009
    • {{ time | date : 'mediumDate' }} => Aug 5, 2009
    • {{ time | date : 'shortDate' }} => 8/5/09
    • {{ time | date : 'mediumTime' }} => 1:02:03 PM
    • {{ time | date : 'shortTime' }} => 1:02 PM

    (2). 年份格式化

    • 四位:{{ time | date : 'yyyy' }} => 2009
    • 兩位:{{ time | date : 'yy' }} => 09
    • 一位:{{ time | date : 'y' }} => 2009

    (3). 月份格式化

    • 英文:{{ time | date : 'MMMM' }} => August
    • 英文簡(jiǎn)寫(xiě):{{ time | date : 'MMM' }} => Aug
    • 數(shù)字:{{ time | date : 'MM' }} => 08
    • 一年中第幾月:{{ time | date : 'M' }} => 8

    (4). 日期格式化

    • 英文星期:{{ time | date : 'EEEE' }} => Wednesday
    • 英文星期簡(jiǎn)寫(xiě):{{ time | date : 'EEE' }} => Wed
    • 數(shù)字日期:{{ time | date : 'dd' }} => 05
    • 一月中第幾天:{{ time | date : 'd' }} => 5

    (5). 小時(shí)格式化

    • 24時(shí):{{ time | date : 'HH' }} => 13
    • 一天中第幾個(gè)小時(shí):{{ time | date : 'H' }} => 13
    • 12時(shí):{{ time | date : 'hh' }} => 01
    • 上午或下午第幾小時(shí):{{ time | date : 'h' }} => 1

    (6). 分鐘格式化

    • 數(shù)字:{{ time | date : 'mm' }} => 02
    • 一小時(shí)中第幾分鐘:{{ time | date : 'm' }} => 2

    (7). 秒數(shù)格式化

    • 數(shù)字:{{ time | date : 'ss' }} => 03
    • 一分鐘中第幾秒:{{ time | date : 's' }} => 3
    • 毫秒:{{ time | date : 'sss' }} => 423

    (8). 字符格式化

    • 上下午標(biāo)識(shí):{{ time | date : 'a' }} => PM
    • 四位時(shí)區(qū)標(biāo)識(shí):{{ time | date : 'Z' }} => +0800

    (9). 自定義

    • {{ time | date : 'MMMd, y' }} => Aug5, 2009
    • {{ time | date : 'EEEE, d, M' }} => Wednesday, 5, 8
    • {{ time | date : 'hh:mm:ss.sss' }} => 01:02:03.423
  3. filter
    filter 可以從給定的數(shù)組中選擇一個(gè)子集屉凯,并將其生成一個(gè)新數(shù)組返回。
    (1). 第一個(gè)參數(shù)可以為字符串眼溶、對(duì)象或函數(shù):

    • 字符串:返回包含這個(gè)字符串的元素神得;
    • !字符串:返回不包含這個(gè)字符串的元素;
    • 對(duì)象:將帶過(guò)濾對(duì)象的屬性同該對(duì)象的同名屬性比較偷仿,若屬性值包含則返回(若想全部屬性對(duì)比哩簿,可以用 $ 作為鍵名);
    • 函數(shù):對(duì)每個(gè)元素執(zhí)行該函數(shù)酝静,若為真則返回节榜。
  4. json
    json 可以將 JSON 或 JavaScript 對(duì)象轉(zhuǎn)換成字符串。

  5. limitTo
    limitTo 會(huì)根據(jù)傳入的參數(shù)生成一個(gè)新的數(shù)字或字符串别智,長(zhǎng)度取決于參數(shù)宗苍,參數(shù)正負(fù)決定從前截取還是從后截取(如果參數(shù)大于被操作數(shù)組或字符串長(zhǎng)度,那么會(huì)全部返回)讳窟。

  6. lowercase
    lowercase 將字符串轉(zhuǎn)為小寫(xiě)让歼。

  7. number
    number 將數(shù)字格式化成文本,參數(shù)可選丽啡,用來(lái)控制小數(shù)點(diǎn)后位數(shù)(若傳入一個(gè)非數(shù)字字符谋右,則返回空字符串)。
    例:{{ 1249448523423.2134 | number : 2 }} => 1,249,448,523,423.21

  8. orderBy
    orderBy 可以用表達(dá)式對(duì)指定數(shù)組進(jìn)行排序补箍。
    orderBy 接受兩個(gè)參數(shù):第一個(gè)參數(shù)是用來(lái)確定數(shù)組排序方向謂詞(必填)改执;第二個(gè)參數(shù)用來(lái)控制排序方向是否逆向(選填)。

{{ [{
      name: 'a',
      age: 21
    }, {
      name: 'c',
      age: 18
    }, {
      name: 'b',
      age: 24
    }] | orderBy : 'name' }}

=> [{"name":"a","age":21},{"name":"b","age":24},{"name":"c","age":18}]

  1. uppercase
    uppercase 將字符串轉(zhuǎn)為大寫(xiě)坑雅。

自定義過(guò)濾器

創(chuàng)建一個(gè)自定義過(guò)濾器需要將其放到自己的模塊中辈挂。

<div ng-app='myApp'>
  <ul>
    <li ng-repeat="val in [1, 2, 3]">{{val | typeChange}}</li>
  </ul>
</div>
<script>
  angular.module('myApp', [])
    .filter('typeChange', function () {
      var typeList = {
        1: '未開(kāi)始',
        2: '進(jìn)行中',
        3: '已結(jié)束',
      }
      return function (input) {
        if (input) {
          return typeList[input];
        }
      }
    });
</script>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市裹粤,隨后出現(xiàn)的幾起案子终蒂,更是在濱河造成了極大的恐慌,老刑警劉巖遥诉,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拇泣,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡突那,警方通過(guò)查閱死者的電腦和手機(jī)挫酿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)构眯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)愕难,“玉大人,你說(shuō)我怎么就攤上這事惫霸∶ㄧ裕” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵壹店,是天一觀的道長(zhǎng)猜丹。 經(jīng)常有香客問(wèn)我,道長(zhǎng)硅卢,這世上最難降的妖魔是什么射窒? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮将塑,結(jié)果婚禮上脉顿,老公的妹妹穿的比我還像新娘。我一直安慰自己点寥,他們只是感情好艾疟,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般蔽莱。 火紅的嫁衣襯著肌膚如雪弟疆。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,255評(píng)論 1 308
  • 那天盗冷,我揣著相機(jī)與錄音怠苔,去河邊找鬼。 笑死正塌,一個(gè)胖子當(dāng)著我的面吹牛嘀略,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播乓诽,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼帜羊,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了鸠天?” 一聲冷哼從身側(cè)響起讼育,我...
    開(kāi)封第一講書(shū)人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎稠集,沒(méi)想到半個(gè)月后奶段,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡剥纷,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年痹籍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晦鞋。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蹲缠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出悠垛,到底是詐尸還是另有隱情线定,我是刑警寧澤,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布确买,位于F島的核電站斤讥,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏湾趾。R本人自食惡果不足惜芭商,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望搀缠。 院中可真熱鬧铛楣,春花似錦、人聲如沸胡嘿。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至勿侯,卻和暖如春拓瞪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背助琐。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工祭埂, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人兵钮。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓蛆橡,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親掘譬。 傳聞我的和親對(duì)象是個(gè)殘疾皇子星岗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容