日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

AngularJS中的过滤器(filter)

發布時間:2023/12/19 javascript 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AngularJS中的过滤器(filter) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??AngularJS中的過濾器是用于對數據的格式化,或者篩選的函數,可以直接通過以下語法使用:

? {{expression|filter}}

? {{expression|filter1|filter2}}

? {{expression|filter1:param1,param2,...|filter2}

? 過濾器的種類有number,currency,date,json,limitTo,lowercase,uppercase,filter,orderBy。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 <!DOCTYPE?html> <html?ng-app="app"> <head> ????<meta?charset="utf-8"> </head> <body?ng-app="app"> ????<div?ng-controller="Controller1"> ????????<p>{{1234567890?|?number}}</p> ????????<!--顯示1,234,567,890--> ????????<p>{{1234.56789?|?number:3}}</p> ????????<!--顯示1,234.568,保留3位小數--> ????????<p>{{1234.56789?|?currency}}</p> ????????<!--顯示$1,234.57,貨幣,默認的前綴是美元符號--> ????????<p>{{1234.56789?|?currency:'¥'}}</p> ????????<!--顯示¥1,234.57--> ????????<p>{{today?|?date:'medium'}}</p> ????????<!--顯示Jun?28,?2015?3:45:54?PM--> ????????<p>{{today?|?date:'short'}}</p> ????????<!--顯示6/28/15?3:45?PM--> ????????<p>{{today?|?date:'fullDate'}}</p> ????????<!--顯示Sunday,?June?28,?2015--> ????????<p>{{today?|?date:'longDate'}}</p> ????????<!--顯示June?28,?2015--> ????????<p>{{today?|?date:'shortDate'}}</p> ????????<!--顯示6/28/15--> ????????<p>{{today?|?date:'shortTime'}}</p> ????????<!--顯示3:45?PM--> ????????<p>{{today?|?date:'mediumTime'}}</p> ????????<!--顯示3:45:54?PM--> ????????<p>{{today?|?date:'yyyy-MM-dd?HH:mm:ss'}}</p> ????????<!--顯示2015-06-28?15:45:54--> ????????<p>{{['a','b','c','d','e']?|?limitTo:3}}</p> ????????<!--顯示["a","b","c"],截取前3位--> ????????<p>{{['a','b','c','d','e']?|?limitTo:-3}}</p> ????????<!--顯示["c","d","e"],截取后3位--> ????????<p>{{'Hello?World'?|?lowercase}}</p> ????????<!--顯示hello?world--> ????????<p>{{'Hello?World'?|?uppercase}}</p> ????????<!--顯示HELLO?WORLD--> ????????<p>{{data.phone?|?filter:'le'}}</p> ????????<!--顯示[{"name":"iPhone","company":"Apple"}],只匹配value值--> ????????<p>{{data.phone?|?filter:{company:'A'}?}}</p> ????????<!--顯示[{"name":"iPhone","company":"Apple"},{"name":"HUAWEI?P8","company":"HUAWEI"}],company中有A就會匹配到--> ????????<p>{{data.phone?|?orderBy:'name'}}</p> ????????<!--顯示[{"name":"Galaxy?S5","company":"Sumsung"},{"name":"HUAWEI?P8","company":"HUAWEI"},{"name":"iPhone","company":"Apple"}],以name的值做排序,默認是從小到大排序--> ????????<p>{{data.phone?|?orderBy:-'name'}}</p> ????????<!--顯示[{"name":"iPhone","company":"Apple"},{"name":"Galaxy?S5","company":"Sumsung"},{"name":"HUAWEI?P8","company":"HUAWEI"}],反序--> ????????<p>{{[2,24,13,89,3,8,41,9,10]?|?filter:checkNum}}</p> ????????<!--自定義的過濾器,顯示[2,3,8,9,10],定義見90~95行--> ????</div> ????<script?src="../JS/angular.min.js"></script> ????<script?type="text/javascript"> ????angular.module('app',?[]) ????????.controller('Controller1',?function($scope,?$filter)?{ ????????????$scope.today?=?new?Date; ????????????$scope.data?=?{ ????????????????phone:?[{ ????????????????????name:?'iPhone', ????????????????????company:?'Apple' ????????????????},?{ ????????????????????name:?'Galaxy?S5', ????????????????????company:?'Sumsung' ????????????????},?{ ????????????????????name:?'HUAWEI?P8', ????????????????????company:?'HUAWEI' ????????????????}] ????????????}; ????????????var?jsonString?=?$filter('json')($scope.data); ????????????console.log(jsonString); ????????????/*?console輸出json格式的data ????????????{ ????????????????"phone":?[ ??????????????????{ ????????????????????"name":?"iPhone", ????????????????????"company":?"Apple" ??????????????????}, ??????????????????{ ????????????????????"name":?"Galaxy?S5", ????????????????????"company":?"Sumsung" ??????????????????}, ??????????????????{ ????????????????????"name":?"HUAWEI?P8", ????????????????????"company":?"HUAWEI" ??????????????????} ????????????????] ????????????} ????????????*/ ????????????//自定義過濾器 ????????????$scope.checkNum?=?function(num)?{ ????????????????//>10的不保留 ????????????????if?(num?>?10)?return?false; ????????????????else?return?true; ????????????} ????????}); ????</script> </body> </html>

? ? ? ?除了上面自定義過濾器的方法外,還有兩種專門的方法。

? ? ? ?第一種 module.filter(name,filterFactory)

? ? ? ?第二種 @$filterProvider.register();


第一種的例子

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 <!DOCTYPE?html> <html?ng-app="app"> <head> ????<meta?charset="utf-8"> </head> <body?ng-app="app"> ????<div?ng-controller="Controller1"> ????????<ul> ????????????<!--?循環輸出data里面的數據,用自定義的名為filterAge的過濾器過濾?--> ????????????<li?ng-repeat="item?in?data?|?filterAge"> ????????????????`item`.`name`?`item`.`age`?`item`.`position` ????????????</li> ????????</ul> ????</div> ????<script?src="../JS/angular.min.js"></script> ????<script?type="text/javascript"> ????angular.module('app',?[],?function($provide)?{ ????????????//service提供數據 ????????????$provide.service('data',?function()?{ ????????????????return?[{ ????????????????????name:?'Wilshere', ????????????????????age:?23, ????????????????????position:?'midfield' ????????????????},?{ ????????????????????name:?'Giroud', ????????????????????age:?28, ????????????????????position:?'striker' ????????????????},?{ ????????????????????name:?'Cech', ????????????????????age:?33, ????????????????????position:?'goalkeeper' ????????????????}]; ????????????}); ????????}) ????????//用.filter的方法定義過濾器 ????????.filter('filterAge',?function()?{ ????????????return?function(obj)?{ ????????????????//obj是過濾前的對象 ????????????????var?newObj?=?[]; ????????????????angular.forEach(obj,?function(i)?{ ????????????????????if?(i.age?>?25)?{ ????????????????????????newObj.push(i); ????????????????????} ????????????????}); ????????????????return?newObj; ????????????} ????????}) ????????.controller('Controller1',?function($scope,?data)?{ ????????????$scope.data?=?data; ????????}); ????</script> </body> </html>


第二種的例子

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 <!DOCTYPE?html> <html?ng-app="app"> <head> ????<meta?charset="utf-8"> </head> <body?ng-app="app"> ????<div?ng-controller="Controller1"> ????????<ul> ????????????<!--?循環輸出data里面的數據,用自定義的名為filterAge的過濾器過濾?--> ????????????<li?ng-repeat="item?in?data?|?filterAge"> ????????????????`item`.`name`?`item`.`age`?`item`.`position` ????????????</li> ????????</ul> ????</div> ????<script?src="../JS/angular.min.js"></script> ????<script?type="text/javascript"> ????angular.module('app',?[],?function($filterProvider,?$provide)?{ ????????????//用注冊的方法自定義過濾器 ????????????$filterProvider.register('filterAge',?function()?{ ????????????????return?function(obj)?{ ????????????????????var?newObj?=?[]; ????????????????????angular.forEach(obj,?function(i)?{ ????????????????????????//age大于25的才會輸出 ????????????????????????if?(i.age?>?25)?{ ????????????????????????????newObj.push(i); ????????????????????????} ????????????????????}); ????????????????????return?newObj; ????????????????} ????????????}); ????????????//service提供數據 ????????????$provide.service('data',?function()?{ ????????????????return?[{ ????????????????????name:?'Wilshere', ????????????????????age:?23, ????????????????????position:?'midfield' ????????????????},?{ ????????????????????name:?'Giroud', ????????????????????age:?28, ????????????????????position:?'striker' ????????????????},?{ ????????????????????name:?'Cech', ????????????????????age:?33, ????????????????????position:?'goalkeeper' ????????????????}]; ????????????}); ????????}) ????????.controller('Controller1',?function($scope,?data)?{ ????????????$scope.data?=?data; ????????}); ????</script> </body> </html>











本文轉自 iampomelo 51CTO博客,原文鏈接:http://blog.51cto.com/iampomelo/1668754,如需轉載請自行聯系原作者

總結

以上是生活随笔為你收集整理的AngularJS中的过滤器(filter)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。