亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

AngularJs功能(五)--過(guò)濾器

leon / 2663人閱讀

摘要:過(guò)濾器過(guò)濾器正如其名,作用就是接收一個(gè)輸入,通過(guò)某個(gè)規(guī)則進(jìn)行處理,然后返回處理后的結(jié)果。表單的控制功能主要涉及到數(shù)據(jù)驗(yàn)證以及表單控件的增強(qiáng)。格式化數(shù)字過(guò)濾器可以為一個(gè)數(shù)字加上千位分割,像這樣,。

過(guò)濾器 Filter

過(guò)濾器(filter)正如其名,作用就是接收一個(gè)輸入,通過(guò)某個(gè)規(guī)則進(jìn)行處理,然后返回處理后的結(jié)果。主要用在數(shù)據(jù)的格式化上。

過(guò)濾器通常是伴隨標(biāo)記來(lái)使用的,將你model中的數(shù)據(jù)格式化為需要的格式。

表單的控制功能主要涉及到數(shù)據(jù)驗(yàn)證以及表單控件的增強(qiáng)。關(guān)于表單控件會(huì)多帶帶模塊做講解。

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

先說(shuō)angular自帶的幾種過(guò)濾器

1.currency (貨幣處理)
使用currency可以將數(shù)字格式化為貨幣,默認(rèn)是美元符號(hào),你可以自己傳入所需的符號(hào),例如我傳入人民幣:
 {{num | currency : "¥"}}
2.date (日期格式化)
原生的js對(duì)日期的格式化能力有限,angular提供的date過(guò)濾器基本可以滿(mǎn)足一般的格式化要求。用法如下:
{{date | date : "yyyy-MM-dd hh:mm:ss EEEE"}} date格式可設(shè)定

  參數(shù)用來(lái)指定所要的格式, y年 M月 d日 h時(shí) m分 s秒 E星期,你可以自由組合它們。也可以使用不同的個(gè)數(shù)來(lái)限制格式化的位數(shù)。

3.filter(匹配字符串)
這個(gè)filter用來(lái)處理一個(gè)數(shù)組,然后可以過(guò)濾出含有某個(gè)字符串的元素,作為一個(gè)子數(shù)組來(lái)返回??梢允亲址?dāng)?shù)組,也可以是對(duì)象數(shù)組。如果是對(duì)象數(shù)組,可以匹配屬性的值。它接收一個(gè)參數(shù),用來(lái)定義過(guò)濾元素的匹配規(guī)則。
例子如下:
$scope.demandArray = [
  {name:"lmc",age:23},
  {name:"lzx",age:24},
  {name:"lxy",age:24},
  {name:"lyj",age:26},
  {name:"fll",age:25}
];
$scope.func = function(e){return e.age>24;};

{{ demandArray | filter : "a" }} //匹配屬性值中含有a的
{{ demandArray | filter : 4 }} //匹配屬性值中含有4的
{{ demandArray | filter : {name : "i"} }} //參數(shù)是對(duì)象,匹配name屬性中含有i的
{{ demandArray | filter : func }} //參數(shù)是函數(shù),指定返回age>4的
4.json(格式化json對(duì)象)
json過(guò)濾器可以把一個(gè)js對(duì)象格式化為json字符串,沒(méi)有參數(shù)。這東西有什么用呢,我一般也不會(huì)在頁(yè)面上輸出一個(gè)json串啊,官網(wǎng)說(shuō)它 可以用來(lái)進(jìn)行調(diào)試,或者,也可以用在js中使用,作用就和我們熟悉的JSON.stringify()一樣。用法超級(jí)簡(jiǎn)單:
{{ jsonTest | json}}
5.limitTo(限制數(shù)組長(zhǎng)度或字符串長(zhǎng)度)
limitTo過(guò)濾器用來(lái)截取數(shù)組或字符串,接收一個(gè)參數(shù)用來(lái)指定截取的長(zhǎng)度,如果參數(shù)是負(fù)值,則從數(shù)組尾部開(kāi)始截取。注意這個(gè)filter只能從數(shù)組或字符串的開(kāi)頭/尾部進(jìn)行截取。
用處不是很大。。完全可以用js來(lái)完成。
{{ childrenArray | limitTo : 2 }} //將會(huì)顯示數(shù)組中的前兩項(xiàng)
6.lowercase(小寫(xiě))
把數(shù)據(jù)轉(zhuǎn)化為全部小寫(xiě)。沒(méi)有參數(shù),只能把整個(gè)字符串變?yōu)樾?xiě),不能指定字母。

7.uppercase(大寫(xiě))
把數(shù)據(jù)轉(zhuǎn)化為全部大寫(xiě)。沒(méi)有參數(shù),只能把整個(gè)字符串變?yōu)樾?xiě),不能指定字母。

8.number(格式化數(shù)字)
number過(guò)濾器可以為一個(gè)數(shù)字加上千位分割,像這樣,123,456,789。同時(shí)接收一個(gè)參數(shù),可以指定float類(lèi)型保留幾位小數(shù):

{{ num | number : 2 }}
9.orderBy(排序)
orderBy過(guò)濾器可以將一個(gè)數(shù)組中的元素進(jìn)行排序,接收一個(gè)參數(shù)來(lái)指定排序規(guī)則,參數(shù)可以是一個(gè)字符串,表示以該屬性名稱(chēng)進(jìn)行排序??梢允?一個(gè)函數(shù),定義排序?qū)傩?。還可以是一個(gè)數(shù)組,表示依次按數(shù)組中的屬性值進(jìn)行排序(若按第一項(xiàng)比較的值相等,再按第二項(xiàng)比較),還是拿上面的孩子數(shù)組舉例:
{{ demandArray | orderBy : "age" }}
//按age屬性值進(jìn)行排序,若是-age,則倒序
{{ demandArray | orderBy : orderFunc }}
//按照函數(shù)的返回值進(jìn)行排序
{{ demandArray | orderBy : ["age","name"] }}
//如果age相同,按照name進(jìn)行排序
自定義過(guò)濾器
filter的自定義方式也很簡(jiǎn)單,使用module的filter方法,返回一個(gè)函數(shù),該函數(shù)接收
輸入值,并返回處理后的結(jié)果。

下面看一個(gè)給數(shù)字加百分比的一個(gè)自定義filter:

angular.module("MetronicApp").filter("numberToRMB",["$filter",function($filter) {
  return function (value) {
    var filter = $filter("currency");
    return filter(value,"¥");
  }
}])

格式就是這樣,你的處理邏輯就寫(xiě)在內(nèi)部的那個(gè)閉包函數(shù)中。你也可以讓自己的過(guò)濾器接收參數(shù),參數(shù)就定義在return的那個(gè)函數(shù)中,作為第二個(gè)參數(shù),或者更多個(gè)參數(shù)也可以。

更多自定義filter會(huì)在項(xiàng)目中詳細(xì)講解。

使用方法
1.在模板中使用filter

我們可以直接在{{}}中使用filter,跟在表達(dá)式后面用 | 分割,語(yǔ)法如下:

{{ expression | filter }} 

也可以多個(gè)filter連用,上一個(gè)filter的輸出將作為下一個(gè)filter的輸入:

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

filter可以接收參數(shù),參數(shù)用 : 進(jìn)行分割,如下:

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

除了對(duì)

{{}}    

中的數(shù)據(jù)進(jìn)行格式化,我們還可以在指令中使用filter,例如先對(duì)數(shù)組array進(jìn)行過(guò)濾處理,然后再循環(huán)輸出:

 
2.在controller和service中使用filter

  我們的js代碼中也可以使用過(guò)濾器,方式就是我們熟悉的依賴(lài)注入,例如我要在controller中使用currency過(guò)濾器,只需將它注入到該controller中即可,代碼如下:

app.controller("testC",function($scope,currencyFilter){
  $scope.num = currencyFilter(123534);  
}  

在模板中使用{{num}}就可以直接輸出$123,534.00了。

在服務(wù)中使用filter也是同樣的道理。

如果你要在controller中使用多個(gè)filter,并不需要一個(gè)一個(gè)注入,angular提供了一個(gè)$filter服務(wù)可以來(lái)調(diào)用所需的filter,你只需注入一個(gè)$filter就夠了,使用方法如下:

app.controller("testC",function($scope,$filter){
  $scope.num = $filter("currency")(123534);  
  $scope.date = $filter("date")(new Date());  
}  

可以達(dá)到同樣的效果。好處是你可以方便使用不同的filter了。

項(xiàng)目中會(huì)對(duì)使用到的filter做詳細(xì)講解。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/92686.html

相關(guān)文章

  • 【譯】《精通使用AngularJS開(kāi)發(fā)Web App》(

    摘要:上一篇譯精通使用開(kāi)發(fā)四下一篇譯精通使用開(kāi)發(fā)六書(shū)名合作對(duì)象正如所見(jiàn),提供了一種將對(duì)象組織為模塊的方式。模塊不僅可以注冊(cè)可以直接被框架所調(diào)用的對(duì)象控制器,過(guò)濾器等,還可以使用任何應(yīng)用開(kāi)發(fā)者所定義的對(duì)象。 上一篇:【譯】《精通使用AngularJS開(kāi)發(fā)Web App》(四) 下一篇:【譯】《精通使用AngularJS開(kāi)發(fā)Web App》(六) 書(shū)名:Mastering Web Applic...

    PiscesYE 評(píng)論0 收藏0
  • 關(guān)于Angularjs中自定義指令一些有價(jià)值的細(xì)節(jié)和技巧

    摘要:屬性為時(shí),指示優(yōu)先級(jí)小于當(dāng)前指令的指令都不執(zhí)行,僅執(zhí)行到本指令。 作者:心葉時(shí)間:2018-04-22 10:58 一:自定義指令常用模板 下面是大致的說(shuō)明,不是全面的,后面來(lái)具體說(shuō)明一些沒(méi)有提及的細(xì)節(jié)和重要的相關(guān)知識(shí): angular.module(yelloxingApp, []).directive(uiDirective, function() { return { ...

    Markxu 評(píng)論0 收藏0
  • AngularJS簡(jiǎn)述

    流行框架 簡(jiǎn)介 angularjs是一款非常優(yōu)秀的前端高級(jí)JS框架,由谷歌團(tuán)隊(duì)開(kāi)發(fā)維護(hù),能夠快速構(gòu)建單頁(yè)web應(yīng)用,化繁為簡(jiǎn) 無(wú)論是angularjs還是jQuery都是用原生JS封裝的 庫(kù):對(duì)代碼進(jìn)行封裝,調(diào)用封裝的方法,簡(jiǎn)化操作 傳統(tǒng)方式是用get方式獲取元素,然后點(diǎn)方法 jQuery庫(kù)實(shí)現(xiàn)了對(duì)獲取方式的封裝,對(duì)方法的封裝 框架:提供代碼書(shū)寫(xiě)規(guī)則,按照規(guī)則去寫(xiě)代碼,框架會(huì)幫我們實(shí)現(xiàn)響應(yīng)的功能...

    Jason 評(píng)論0 收藏0
  • 理解和學(xué)習(xí)AngularJS(一)

    摘要:為指令賦值函數(shù)名,即可運(yùn)行。它也是一個(gè)對(duì)象,指向應(yīng)用程序作用域內(nèi)的所有元素和執(zhí)行上下文。簡(jiǎn)而言之,是與指令元素相關(guān)聯(lián)的當(dāng)前作用域,可以理解為視圖和控制器間的一個(gè)通道。它們被組織為模塊形式,之后可以被另一個(gè)引用。 Angularjs Angular是一款主旋律的MVVM框架,框架和傳統(tǒng)的庫(kù)不同: 類(lèi)庫(kù)是一些函數(shù)的集合,它能幫助你寫(xiě)WEB應(yīng)用。起主導(dǎo)作用的是你的代碼,由你來(lái)決定何時(shí)使用類(lèi)...

    EastWoodYang 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<