91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

angularjs之filter過濾器

發布時間:2020-06-10 08:08:41 來源:網絡 閱讀:505 作者:zddnd 欄目:網絡安全

現在公司用ionic,就是基于angularjs封裝了一些api用于webapp,最近用的angularjs的filter確實省了很多代碼,現在總結一下!

  ng比較雞肋的過濾器,這里就一筆帶過吧!雞湯類常用的filter后面上例子。

lowercase(小寫)

{{ lastName | lowercase }}

uppercase(大寫)

{{ lastName | uppercase }}

number(格式化數字)

number過濾器可以為一個數字加上千位分割,像這樣,123,456,789。同時接收一個參數,可以指定小float型保留幾位小數:

{{ num | number : 2 }}

 currency (貨幣處理)

{{num | currency : '¥'}}

json(格式化json對象)

{{ jsonTest | json}}

  作用就和我們熟悉的JSON.stringify()一樣

 limitTo(限制數組長度或字符串長度)

{{ childrenArray | limitTo : 3 }}  //將會顯示數組中的前3項

filter(匹配子串)

  用來處理一個數組,然后可以過濾出含有某個子串的元素,作為一個子數組來返回。可以是字符串數組,也可以是對象數組。如果是對象數組,可以匹配屬性的值。它接收一個參數,用來定義子串的匹配規則。

html

angularjs之filter過濾器

angularjs之filter過濾器

<ul>
        <li>filter 匹配子串(以下寫法只是方便觀察)</li>
        <li>{{ webArr | filter : 'n' }} <!--匹配屬性值中含有n的--></li>
        <li>{{ webArr | filter : 25 }} <!--匹配屬性值中含有25的--></li>
        <li>{{ webArr | filter : {name : 'l'} }} <!--//參數是對象,匹配name屬性中含有l的--></li>
        <li>{{ webArr | filter : fun }} <!--/參數是函數,指定返回age>25的--></li>
</ul>

angularjs之filter過濾器

angularjs之filter過濾器

js

angularjs之filter過濾器

angularjs之filter過濾器

$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;};

angularjs之filter過濾器

angularjs之filter過濾器

 效果展示:

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小時制;

  • 其中年、月、日、時、分、秒 或  / : - 等自己試做搭配吧!

angularjs之filter過濾器

angularjs之filter過濾器

    <ul>
        <li>8 日期1</li>
        <li ng-bind="date|date:'yyyy/MM/dd hh:mm:ss EEEE'"></li>
        <li>8 日期2</li>
        <li ng-bind="date|date:'yyyy年MM月dd日 h:mma EEEE'"></li>
        <li>8 日期3</li>
        <li ng-bind="date|date:'yyyy年MM月dd日 hh時mm分ss秒'"></li>
        <li>8 日期4</li>
        <li ng-bind="date|date:'yyyy/MM/dd hh:mm:ss'"></li>
    </ul>

angularjs之filter過濾器

angularjs之filter過濾器

日期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

 orderBy排序(個人認為第七例最佳寫法)

ng-repeat生成一個獨立的scope作用域,直接在ng-repeat循環后加管道orderBy排序。

用法很簡單,但有坑需注意兩點:

  • 參數引號勿忘;

  • 參數形式--直接寫成age,不用寫成item2.age。

3 按年齡排序(默認升序)

angularjs之filter過濾器

angularjs之filter過濾器

    <ul>
        <li>3 按年齡排序(默認升序)</li>
        <li ng-repeat="item2 in items2|orderBy:'age'">
            <div>
                <b>name</b>
                <u ng-bind="item2.name"></u>
            </div>
            <div>
                <b>age</b>
                <i ng-bind="item2.age"></i>
            </div>
            <div>
                <b>stature</b>
                <i ng-bind="item2.stature"></i>
            </div>
        </li>
    </ul>

angularjs之filter過濾器

angularjs之filter過濾器

效果展示:

angularjs之filter過濾器

angularjs之filter過濾器

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

angularjs之filter過濾器

angularjs之filter過濾器

4 按年齡排序(加參數true則為倒序即降序)

angularjs之filter過濾器

angularjs之filter過濾器

    <ul>
        <li ng-repeat="item2 in items2|orderBy:'age':true">
            <div>
                <b>name</b>
                <u ng-bind="item2.name"></u>
            </div>
            <div>
                <b>age</b>
                <i ng-bind="item2.age"></i>
            </div>
            <div>
                <b>stature</b>
                <i ng-bind="item2.stature"></i>
            </div>
        </li>
    </ul>

angularjs之filter過濾器

angularjs之filter過濾器

效果展示:

angularjs之filter過濾器

angularjs之filter過濾器

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

angularjs之filter過濾器

angularjs之filter過濾器

5 想先按年齡升序在按身高降序(全是降序了,達不到效果,見第7例)
我曾就天真的這樣寫過^*^

angularjs之filter過濾器

angularjs之filter過濾器

    <ul>
        <!--<li ng-repeat="item2 in items2|orderBy:'age':'-stature'">-->
        <li ng-repeat="item2 in items2|orderBy:'age':'stature':true">
            <div>
                <b>name</b>
                <u ng-bind="item2.name"></u>
            </div>
            <div>
                <b>age</b>
                <i ng-bind="item2.age"></i>
            </div>
            <div>
                <b>stature</b>
                <i ng-bind="item2.stature"></i>
            </div>
        </li>
    </ul>

angularjs之filter過濾器

angularjs之filter過濾器

效果展示:

angularjs之filter過濾器

angularjs之filter過濾器

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

angularjs之filter過濾器

angularjs之filter過濾器

6 先按年齡在按身高排序(多個參數寫出數組形式)

angularjs之filter過濾器

angularjs之filter過濾器

    <ul>
        <li ng-repeat="item2 in items2|orderBy:['age','stature']">
            <div>
                <b>name</b>
                <u ng-bind="item2.name"></u>
            </div>
            <div>
                <b>age</b>
                <i ng-bind="item2.age"></i>
            </div>
            <div>
                <b>stature</b>
                <i ng-bind="item2.stature"></i>
            </div>
        </li>
    </ul>

angularjs之filter過濾器

angularjs之filter過濾器

效果展示:

angularjs之filter過濾器

angularjs之filter過濾器

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

angularjs之filter過濾器

angularjs之filter過濾器

7 先按年齡升序在按身高降序(多個參數寫出數組形式)

  在參數前加負號即可實現倒序

angularjs之filter過濾器

angularjs之filter過濾器

    <ul>
        <li ng-repeat="item2 in items2|orderBy:['age','-stature']">
            <div>
                <b>name</b>
                <u ng-bind="item2.name"></u>
            </div>
            <div>
                <b>age</b>
                <i ng-bind="item2.age"></i>
            </div>
            <div>
                <b>stature</b>
                <i ng-bind="item2.stature"></i>
            </div>
        </li>
    </ul>

angularjs之filter過濾器

angularjs之filter過濾器

效果展示:

angularjs之filter過濾器

angularjs之filter過濾器

!!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

angularjs之filter過濾器

angularjs之filter過濾器

個人覺得ng內置的過濾器好多都比較雞肋。個性化的需求自定義的過濾器吧。

自定義過濾器

自定義過濾器就是返回一個函數,函數又返回你要的值即可!

實例:

angularjs之filter過濾器

angularjs之filter過濾器

angular.module('youAppName',[])
                .filter('youFilterName',function(){
                    return function(){
                      //你的處理代碼
                        return result;//返回你要的值
                    }
                })

angularjs之filter過濾器

angularjs之filter過濾器

自定義一個求和的過濾器

html
    <ul>
        <li>!!1 求和</li>
        <li ng-repeat="item1 in items1">
            <div ng-bind="item1.male | sumNick:item1.female:item1.gay"></div>
        </li>
    </ul>

用法:

管道前后所有參數即為和
js

angularjs之filter過濾器

angularjs之filter過濾器

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;i<len;i++){
                            sum+=arr[i]?arr[i]:0;
                        }
                        return sum;
                    }
                })

angularjs之filter過濾器

angularjs之filter過濾器

arguments--函數接受的參數集合,類數組;

Array.prototype.slice.call(arguments)

這句將類數組轉為數組; 

 sum+=arr[i]?arr[i]:0;

  總和sum等于數組的每個元素累加的和。避免后臺為傳值,而又將次參數傳人自定義filer函數作為參數,容錯時寫成0保險。

  自定義一個求百分百的過濾器(求保留小數點后兩位百分比)

html

angularjs之filter過濾器

angularjs之filter過濾器

    <ul ng-repeat="item1 in items1">
        <li>!!2 求百分比</li>
        <li>
            <b>male</b>
            <i ng-bind="item1.male|percentNick:item1.female:item1.gay"></i>
        </li>
        <li>
            <b>female</b>
            <u ng-bind="item1.female|percentNick:item1.male:item1.gay"></u>
        </li>
        <li>
            <b>gay</b>
            <s ng-bind="item1.gay|percentNick:item1.female:item1.male"></s>
        </li>
    </ul>

angularjs之filter過濾器

angularjs之filter過濾器

用法:

 分子寫在管道前面,管道后面的所有參數和加管道前的參數和則為分母
js

angularjs之filter過濾器

angularjs之filter過濾器

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<len;i++){
                            sum+=arr[i]?arr[i]:0;
                        }
                        //0/0也是nan
                        return sum==0?'0%':Math.round((arr[0]?arr[0]:0)/sum*10000)/100+"%";
                    }
                })

angularjs之filter過濾器

angularjs之filter過濾器

這里就是在上面求和的filter上多了一句:

sum==0?'0%':Math.round((arr[0]?arr[0]:0)/sum*10000)/100+"%"

  Math內置函數,Math.round四舍五入保留整數;

  將總和乘以10000除以100拼接百分比號,即保留兩位小數。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

唐河县| 和平县| 虞城县| 德州市| 新龙县| 甘肃省| 怀集县| 呼伦贝尔市| 拉萨市| 自贡市| 安新县| 莒南县| 襄垣县| 漳平市| 泸州市| 阜康市| 英超| 沾化县| 重庆市| 偏关县| 张家港市| 三门县| 泉州市| 含山县| 吴川市| 莱州市| 长沙县| 京山县| 赤峰市| 香港| 永吉县| 平遥县| 子洲县| 修武县| 专栏| 禄丰县| 新乡县| 台南市| 广昌县| 炉霍县| 佛学|