現在公司用ionic,就是基于angularjs封裝了一些api用于webapp,最近用的angularjs的filter確實省了很多代碼,現在總結一下!
成都創(chuàng)新互聯(lián)是專業(yè)的津南網站建設公司,津南接單;提供成都做網站、成都網站設計,網頁設計,網站設計,建網站,PHP網站建設等專業(yè)做網站服務;采用PHP框架,可快速的進行津南網站開發(fā)網頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網站,專業(yè)的做網站團隊,希望更多企業(yè)前來合作!ng比較雞肋的過濾器,這里就一筆帶過吧!雞湯類常用的filter后面上例子。
{{ lastName | lowercase }}
{{ lastName | uppercase }}
number過濾器可以為一個數字加上千位分割,像這樣,123,456,789。同時接收一個參數,可以指定小float型保留幾位小數:
{{ num | number : 2 }}
{{num | currency : '¥'}}
{{ jsonTest | json}}
作用就和我們熟悉的JSON.stringify()一樣
{{ childrenArray | limitTo : 3 }} //將會顯示數組中的前3項
用來處理一個數組,然后可以過濾出含有某個子串的元素,作為一個子數組來返回??梢允亲址當到M,也可以是對象數組。如果是對象數組,可以匹配屬性的值。它接收一個參數,用來定義子串的匹配規(guī)則。
$scope.webArr = [ {name:'nick',age:25}, {name:'ljy',age:28}, {name:'xzl',age:28}, {name:'zyh',age:30} ]; $scope.fun = function(e){return e.age>25;};
filter 匹配子串(以下寫法只是方便觀察) [{"name":"nick","age":25}] [{"name":"nick","age":25}] [{"name":"ljy","age":28},{"name":"xzl","age":28}] [{"name":"ljy","age":28},{"name":"xzl","age":28},{"name":"zyh","age":30}]
日期過濾器應該是常用過濾器中最簡單的吧!
yyyy--表示年份;
MM--月份(必須大寫);
dd--日期;
hh--時;
mm--分(必須小寫);
ss--秒;
EEEE--星期;
hh:mm--形式是24小時制;
h:mma--12小時制;
其中年、月、日、時、分、秒 或 / : - 等自己試做搭配吧!
日期1的顯示效果:
2016/11/19 11:59:05 Saturday
日期2的顯示效果:
2016年11月19日 12:01PM Saturday
日期3的顯示效果:
2016年11月22日 10時42分09秒
日期4的顯示效果:
2016/11/22 11:16:58
ng-repeat生成一個獨立的scope作用域,直接在ng-repeat循環(huán)后加管道orderBy排序。
用法很簡單,但有坑需注意兩點:
參數引號勿忘;
參數形式--直接寫成age,不用寫成item2.age。
效果展示:
3 按年齡排序(默認升序) name ljy age 27 stature 165 name nick age 25 stature 170 name xzl age 27 stature 175 name zyh age 29 stature 165
效果展示:
4 按年齡排序(加參數true則為倒序即降序) name zyh age 29 stature 165 name xzl age 27 stature 175 name ljy age 27 stature 165 name nick age 25 stature 170
5 想先按年齡升序在按身高降序(全是降序了,達不到效果,見第7例) 我曾就天真的這樣寫過^*^
效果展示:
5 想先按年齡升序在按身高降序(全是降序了,達不到效果,見第7例) name zyh age 29 stature 165 name xzl age 27 stature 175 name ljy age 27 stature 165 name nick age 25 stature 170
效果展示:
6 先按年齡在按身高排序(多個參數寫出數組形式) name nick age 25 stature 170 name ljy age 27 stature 165 name xzl age 27 stature 175 name zyh age 29 stature 165
在參數前加負號即可實現倒序
效果展示:
!!7 先按年齡升序在按身高降序(多個參數寫出數組形式) name nick age 25 stature 170 name xzl age 27 stature 175 name ljy age 27 stature 165 name zyh age 29 stature 165
個人覺得ng內置的過濾器好多都比較雞肋。個性化的需求自定義的過濾器吧。
自定義過濾器就是返回一個函數,函數又返回你要的值即可!
angular.module('youAppName',[]) .filter('youFilterName',function(){ return function(){ //你的處理代碼 return result;//返回你要的值 } })
用法:
管道前后所有參數即為和
var nickAppModule=angular.module('nickApp',[]); nickAppModule //求和 .filter('sumNick',function(){ return function(){ var arr=Array.prototype.slice.call(arguments),sum=0; for(var i= 0,len=arr.length;iarguments--函數接受的參數集合,類數組;
Array.prototype.slice.call(arguments)這句將類數組轉為數組;
sum+=arr[i]?arr[i]:0;總和sum等于數組的每個元素累加的和。避免后臺為傳值,而又將次參數傳人自定義filer函數作為參數,容錯時寫成0保險。
自定義一個求百分百的過濾器(求保留小數點后兩位百分比)
html
- !!2 求百分比
- male
- female
- gay
用法:
分子寫在管道前面,管道后面的所有參數和加管道前的參數和則為分母
var nickAppModule=angular.module('nickApp',[]); nickAppModule //百分比 .filter('percentNick',function(){ return function(){ var arr=Array.prototype.slice.call(arguments),sum=0; for(var i= 0,len=arr.length;i這里就是在上面求和的filter上多了一句:
sum==0?'0%':Math.round((arr[0]?arr[0]:0)/sum*10000)/100+"%"Math內置函數,Math.round四舍五入保留整數;
將總和乘以10000除以100拼接百分比號,即保留兩位小數。
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
名稱欄目:angularjs之filter過濾器-創(chuàng)新互聯(lián)
轉載注明:http://weahome.cn/article/ccdocg.html