angular(json)

1)json
将对象格式化成一个标准的json字符串
语法:{{对象 | json}}

2)lowercase/uppercase
将字符串转换成小写或大写
语法:{{字符串 | uppercase/lowercase}}

3)number
格式化数字,为数字加上千位分割,比如123,456,789;同时可以接收一个参数,用于指定小数点后保留几位
语法:{{数字 | number:数字}}

4)orderBy
用于为数组进行排序,一般用于处理对象数组
可以接收一个参数来指定排序的规则,参数可以是一个字符串,也可以是一个数组

当参数为数组时,会首先以数组的第一项进行排列,如果根据第一项无法排序,则再去根据第二项进行排序,依次类推

同时可以设置第二个参数,确定排序方式(升序或降序),默认为fasle,表示升序,设置为true时,表示降序

可以在orderBy的属性前加负号(-),也可以表示降序

二、自定义过滤器
自定义过滤格式
app.filter(“过滤器名”,function(){
return function(待过滤的值,参数1,参数2…){
return 过滤后的值;
}
});
其中的参数1,2是可选的
使用:{{待过滤值 | 过滤器名}}

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <script src="angular.min.js"></script>
</head>
<body ng-app="app">
    {{{name:"张三",age:10} | json}}
    {{"abc" | uppercase}}
    {{"Abc" | lowercase}}、

    {{12344321.123121 | number}}
    {{12213.111 | number:2}}

    <div ng-init="arr = [{name:'abc',age:20},{name:'acd',age:19},{name:'aad',age:29},{name:'bdc',age:17},{name:'bcd',age:23},{name:'afr',age:24},{name:'acd',age:17}]">
        <!-- 以name属性进行排序:属性的比较,首先比较第一个字符,如果相同,再去比较下一个,知道比较出大小 -->
        {{arr | orderBy:"name"}}

        {{arr | orderBy:'age'}}

        <div>
            <ul>
                <!-- 首先以名字进行排序,当名字一样时,按照年龄进行排序 -->
                <li ng-repeat="p in arr | orderBy:['name','age']">{{p.name+"-"+p.age}}</li>
            </ul>
        </div>
        <div>
            <ul>
                <!-- 首先以名字进行排序,当名字一样时,按照年龄进行排序 -->
                <li ng-repeat="p in arr | orderBy:['name','-age']:true">{{p.name+"-"+p.age}}</li>
            </ul>
        </div>
    </div>



    <!-- 自定义过滤器,实现在字符串前添加图标 ☺ -->
    <div>{{"哈哈" | laugh}}</div>

    <!-- 自定义过滤器,实现字符串翻转,再根据用户设置,选择是否转换成大写 -->
    <div>{{"abcd" | reverse:true}}</div>

    <!--自定义过滤器,实现字符串翻转,再根据用户设置,选择是否转换成大写,并在字符串前添加用户指定的修饰符  -->
    <div>{{"hiiuio" | reverseAndDes:true:'√'}}</div>

    <!-- 多个过滤器一起使用 -->
    {{"avxb" | reverse | laugh }}
    <script>

        var app = angular.module('app',[]);
        //不带参数的过滤器
        app.filter("laugh",function(){
            return function(input){
                return "☺"+input;
            }
        });

        //带参数的过滤器
        app.filter("reverse",function(){
            return function(input,flag){
                var s = '';
                //abc
                for (var i = 0; i < input.length; i++) {
                    s = input[i]+s;
                }
                // 需要转换咸大写
                if (flag) {
                    s = s.toUpperCase();
                }

                return s;
            }
        });
        //带多个参数的过滤器
        app.filter("reverseAndDes",function(){
            return function(input,flag,des){
                var s = '';
                //abc
                for (var i = 0; i < input.length; i++) {
                    s = input[i]+s;
                }
                // 需要转换咸大写
                if (flag) {
                    s = s.toUpperCase();
                }

                return des+s;
            }
        })
    </script>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值