AngularJS的filter過濾器

uppercase|lowercase:大小寫轉(zhuǎn)換過濾

json:json格式過濾

date:日期格式過濾

number:數(shù)字格式過濾

currency:貨幣格式過濾

filter:查找

limitTo:字符串對象截取

orderBy:對象排序

1讳嘱、uppercase,lowercase 大小寫轉(zhuǎn)換

1.{{ "lower cap string" | uppercase }}   // 結(jié)果:LOWER CAP STRING
{{ "TANK is GOOD" | lowercase }}      // 結(jié)果:tank is good
2.$filter('uppercase')()

2若债、date 格式化

1.{{ date_expression | date : format(可選)}}

2.$filter('date')(date, format)

format值

{{1490161945000 | date:"yyyy-MM-dd HH:mm:ss"}} // 2017-03-22 13:52:25
'yyyy': 4位數(shù)字的年份(如AD 1 => 0001, AD 2010 => 2010) 
'yy': 2位數(shù)字的年份酷含,范圍為(00-99)。(如AD 2001 => 01, AD 2010 => 10) 
'y': 1位數(shù)字的年份钻洒,例如 (AD 1 => 1, AD 199 => 199)
'MMMM': 月份 (January-December)
'MMM': 月份 (Jan-Dec)
'MM': 月份, padded (01-12)
'M': 月份 (1-12) 
'dd': 日掖蛤,范圍為(01-31) 
'd': 日 (1-31)
'EEEE': 星期,(Sunday-Saturday)
'EEE': 星期, (Sun-Sat) 
'HH': 小時(shí), 范圍為(00-23)
'H': 小時(shí) (0-23) 
'hh': am/pm形式的小時(shí), 范圍為(01-12)
'h': am/pm形式的小時(shí), (1-12) 
'mm': 分鐘,范圍為 (00-59)
'm': 分鐘 (0-59) 
'ss': 秒, 范圍為 (00-59) 
's': 秒 (0-59) 
'.sss' or ',sss': 毫秒,范圍為 (000-999) 
'a': am/pm 標(biāo)記 
'Z': 4 位數(shù)字的時(shí)區(qū)偏移(+符號)(-1200-+1200) 
'ww': ISO-8601 年內(nèi)的周數(shù) (00-53)
'w': ISO-8601 年內(nèi)的周數(shù) (0-53)
AngularJS: API: ng/filter/date

 body, td {
 font-family: Tahoma;
 font-size: 10pt;
 }

format字符串也可以是以下預(yù)定義的本地化格式之一:
'medium': 等于en_US本地化后的'MMM d, y h:mm:ss a'(如:Sep 3, 2010 12:05:08 pm)
'short': 等于en_US本地化后的'M/d/yy h:mm a'(如: 9/3/10 12:05 pm) 
'fullDate': 等于en_US本地化后的'EEEE, MMMM d, y'(如: Friday, September 3, 2010) 
'longDate': 等于en_US本地化后的'MMMM d, y'(如: September 3, 2010) 
'mediumDate': 等于en_US本地化后的'MMM d, y'(如: Sep 3, 2010) 
'shortDate': 等于en_US本地化后的'M/d/yy'(如: 9/3/10) 
'mediumTime': 等于en_US本地化后的'h:mm:ss a'(如: 12:05:08 pm) 
'shortTime': 等于en_US本地化后的'h:mm a'(如: 12:05 pm)

format字符串可以包含固定值。這需要用單引號括起來 (如:"h 'in the morning'")
如果要輸出單引號崔泵,使序列中使用兩個(gè)單引號(如:"h 'o''clock'")。

3 數(shù)字格式過濾

1.{{ number_expression | number : fractionSize}}

2.$filter('number')(number, fractionSize)

{{158620 | number}}//158,620
{{16.1945000 | number:2}} //16.19

4.currency貨幣格式化

1.{{ currency_expression | currency : symbol}}

2.$filter('currency')(amount, symbol)

{{ 250 | currency }}            // 結(jié)果:$250.00
{{ 250 | currency:"RMB ¥ " }}  // 結(jié)果:RMB ¥ 250.00

5.json格式過濾

1.{{ json_expression | json}}

2.$filter('json')(Object)

這個(gè)過濾器常用于調(diào)試猪瞬。使用雙花括號的綁定會自動轉(zhuǎn)換成JSON憎瘸。

6.limitTo:字符串對象截取

1.{{ limitTo_expression | limitTo : limit}}

2.$filter('limitTo')(input, limit)

返回的數(shù)組或字符串的長度。如果limit數(shù)字為正數(shù)陈瘦,從源數(shù)組/字符串開始的limit數(shù)量的條目會被復(fù)制幌甘。如果數(shù)字為負(fù)數(shù),從源數(shù)組/字符串結(jié)尾的limit 數(shù)量的條目會被復(fù)制痊项。如果limit超過array.length會被裁剪锅风。長度為limit的新子數(shù)組或子串,如果輸入數(shù)組小于limit鞍泉,返回長度會小于limit皱埠。


<body ng-app="limitToExample">
        
    
    <div ng-controller="ExampleController">
        
  Limit {{numbers}} to: <input Type="integer" ng-model="numLimit">
  <p>Output numbers: {{ numbers | limitTo:numLimit }}</p>
  Limit {{letters}} to: <input Type="integer" ng-model="letterLimit">
  
  <p>Output letters: {{ letters | limitTo:letterLimit }}</p></div>
  
    <script> 
        angular.module('limitToExample', [])
    .controller('ExampleController', ['$scope', function($scope) 
    {
      $scope.numbers = [1,2,3,4,5,6,7,8,9];  
      $scope.letters = "abcdefghi";
      $scope.numLimit = 3;     
      $scope.letterLimit = -3;  
    }]
    );
    </script>
</body>

6.orderBy:對象排序

通過expression來排序指定的array 。 字符串按字母順序排序咖驮,數(shù)字按大小排序边器。注意:如果你發(fā)現(xiàn)數(shù)字沒被正確排序,請確認(rèn)它們保存的是數(shù)字而不是字符串托修。

1.{{ orderBy_expression | orderBy : expression : reverse}}

2.$filter('orderBy')(array, expression, reverse)

Array 用于排序的數(shù)組忘巧。
expression :可為下列之一:
function(*)
Function: Getter函數(shù)。這個(gè)函數(shù)的結(jié)果可使用<,=,>操作符進(jìn)行排序诀黍。
string: 一個(gè)Angular表達(dá)式袋坑,對一個(gè)對象求值來排序,如用'name'來對屬性名為'name'序眯勾。用可選前綴+或-來確定是正序或倒序 (例如枣宫,+name or -name)。
Array.<(function()|string)>
一個(gè)函數(shù)或字符串聲明數(shù)組吃环。數(shù)組中的第一個(gè)聲明用于排序也颤,但是當(dāng)兩個(gè)條目相等時(shí),會用下一個(gè)聲明郁轻。
reverse(可選)boolean對數(shù)組進(jìn)行反向排序翅娶。

<script>  angular.module('orderByExample', [])
    .controller('ExampleController', ['$scope', Function($scope) {
      $scope.friends = [
 {name:'John', phone:'555-1212', age:10},
 {name:'Mary', phone:'555-9876', age:19},
 {name:'Mike', phone:'555-4321', age:21},
 {name:'Adam', phone:'555-5678', age:35},
 {name:'Julie', phone:'555-8765', age:29}];
      $scope.predicate = '-age';    }
]);
</script>
<div ng-controller="ExampleController">
  <pre>Sorting predicate = {{predicate}}; reverse = {{reverse}}</pre>  <hr/>
  [ <a href="" ng-click="predicate=''">unsorted</a> ] 
 <table class="friend">
    <tr><th><a href="" ng-click="predicate = 'name'; reverse=false">名稱</a>
          (<a href="" ng-click="predicate = '-name'; reverse=false">^</a>)</th>
      <th><a href="" ng-click="predicate = 'phone'; reverse=!reverse">Phone Number</a></th>
      <th><a href="" ng-click="predicate = 'age'; reverse=!reverse">Age</a></th>
    </tr><tr ng-repeat="friend in friends | orderBy:predicate:reverse">
    <td>{{friend.name}}</td>  
    <td>{{friend.phone}}</td>
    <td>{{friend.age}}</td>  
   </tr> 
 </table>
</div>

7.filter:查找

從array中選擇一個(gè)條目子集,并作為一個(gè)新數(shù)組返回好唯。

1.{{ filter_expression | filter : expression : comparator}}

2.$filter('filter')(array, expression, comparator)

array 源數(shù)組竭沫。

expression

string:作為表達(dá)式計(jì)算的字符串,計(jì)算結(jié)果作為子串匹配array中的內(nèi)容骑篙。array中包含這個(gè)字符串的所有字符串或字符串屬性對象會返回蜕提。字符串前可以放置!表示相反條件。
Object:一個(gè)模式對象靶端,用于過濾array中對象的指定屬性谎势。例如{name:"M", phone:"1"} 表示返回?cái)?shù)據(jù)組中屬性name 包含 "M" 和屬性 phone 包含 "1"的條目⊙蠲可以使用特殊屬性名 $ (as in {$:"text"}) 來匹配對象中的所有屬性脏榆。這相當(dāng)于上面描述的使用string進(jìn)行的子串簡單匹配。
function() Function(value): 一個(gè)自定義過濾方法的函數(shù)台谍。這個(gè)函數(shù)被每個(gè)array中的元素調(diào)用须喂。最終結(jié)果為返回true的元素的數(shù)組。

comparator

用于檢測期望值(來自過濾表達(dá)式)和實(shí)際值(來自數(shù)組中的實(shí)際對象)是否匹配的比較器趁蕊∧髡郏可以為以下之一:
Function(actual, expected): 這個(gè)函數(shù)會傳入對象值和期望值來比較,如果條目返回true就會被包含在過濾結(jié)果中介衔。

true: Function(actual, expected) { return angular.equals(expected, actual)}的便捷寫法恨胚。它對期望值和實(shí)際值進(jìn)行強(qiáng)比較。

false|undefined: 一個(gè)不區(qū)分大小寫的子串匹配函數(shù)的便捷寫法炎咖。

<div ng-init="friends = [{name:'John', phone:'555-1276'},
                         {name:'Mary', phone:'800-BIG-MARY'},
                         {name:'Mike', phone:'555-4321'},
                         {name:'Adam', phone:'555-5678'},
                         {name:'Julie', phone:'555-8765'},
                         {name:'Juliette', phone:'555-5678'}]"></div>
Search: <input ng-model="searchText"><table id="searchTextResults">
  <tr>
  <th>名稱</th>
  <th>Phone</th>
</tr>
  <tr ng-repeat="friend in friends | filter:searchText">
    <td>{{friend.name}}</td>
    <td>{{friend.phone}}</td>  
</tr></table>
<hr>
Any: <input ng-model="search.$"> <br>
Name only <input ng-model="search.name"><br>
Phone only <input ng-model="search.phone"><br>
Equality <input Type="checkbox" ng-model="strict"><br>
<table id="searchObjResults"> 
 <tr><th>名稱</th
><th>Phone</th></tr>
  <tr ng-repeat="friendObj in friends | filter:search:strict">
    <td>{{friendObj.name}}</td> 
   <td>{{friendObj.phone}}</td> 
 </tr>
</table>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末赃泡,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子乘盼,更是在濱河造成了極大的恐慌升熊,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绸栅,死亡現(xiàn)場離奇詭異级野,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)粹胯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進(jìn)店門蓖柔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來辰企,“玉大人,你說我怎么就攤上這事况鸣±蚊常” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵镐捧,是天一觀的道長潜索。 經(jīng)常有香客問我,道長懂酱,這世上最難降的妖魔是什么竹习? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮列牺,結(jié)果婚禮上整陌,老公的妹妹穿的比我還像新娘。我一直安慰自己昔园,他們只是感情好蔓榄,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著默刚,像睡著了一般甥郑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上荤西,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天澜搅,我揣著相機(jī)與錄音,去河邊找鬼邪锌。 笑死勉躺,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的觅丰。 我是一名探鬼主播饵溅,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼妇萄!你這毒婦竟也來了蜕企?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤冠句,失蹤者是張志新(化名)和其女友劉穎轻掩,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體懦底,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡唇牧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片丐重。...
    茶點(diǎn)故事閱讀 39,977評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡腔召,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出弥臼,到底是詐尸還是另有隱情宴咧,我是刑警寧澤根灯,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布径缅,位于F島的核電站,受9級特大地震影響烙肺,放射性物質(zhì)發(fā)生泄漏纳猪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一桃笙、第九天 我趴在偏房一處隱蔽的房頂上張望氏堤。 院中可真熱鬧,春花似錦搏明、人聲如沸鼠锈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽购笆。三九已至,卻和暖如春虚循,著一層夾襖步出監(jiān)牢的瞬間同欠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工横缔, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留铺遂,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓茎刚,卻偏偏與公主長得像襟锐,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子膛锭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評論 2 355

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

  • 轉(zhuǎn)載文章 angularjs 過濾器(filter)正如其名粮坞,作用就是接收一個(gè)輸入,通過某個(gè)規(guī)則進(jìn)行處理泉沾,然后返回...
    飛將軍閱讀 604評論 0 2
  • 查找當(dāng)前頁的url Filter是用來格式化數(shù)據(jù)用的捞蚂。 Filter的基本原型( '|' 類似于Linux中的管道...
    laiyituan閱讀 4,590評論 0 2
  • AngularJS是什么?AngularJs(后面就簡稱ng了)是一個(gè)用于設(shè)計(jì)動態(tài)web應(yīng)用的結(jié)構(gòu)框架跷究。首先姓迅,它是...
    200813閱讀 1,607評論 0 3
  • angular中filter過濾器主要有兩個(gè)作用:格式化數(shù)據(jù)和過濾數(shù)據(jù)。filter組件共有以下幾種:1、curr...
    小弋呀閱讀 685評論 0 4
  • 初中學(xué)生或者家長丁存,都需要考慮中考的問題肩杈,你可能會想知道自己目前成績能上什么高中。 我們知道上什么高中取決于當(dāng)年高中...
    名校榜閱讀 1,536評論 0 1