angularJS 自定义过滤器

    本文使用三种方式自定义一个数组过滤器。

数组list:

[
    { name:'张三', age:20, city:'上海' },
    { name:'李思', age:30, city:'北京' },
    { name:'王五', age:25, city:'深圳' }
]

1.自定义过滤器方式一 (在controller方法内定义一个方法

html:  

<li ng-repeat=" item in list | filter : myFilter1">
js:

var app=angular.module('myApp',[]);
app.controller("myCtrl",function($scope,List){
    $scope.list=List;

    //自定义过滤器 方式一  仅显示年龄小于30岁的人员
    $scope.myFilter1=function(obj){
        if(obj.age < 30){
            return true;
        }return false;
    };
});

2.自定义过滤器方式二 (.filter方法)
html:
<li ng-repeat=" item in list | filterCity">
js:
//自定义过滤器  方式二  不显示上海的人员
    app.filter('filterCity',function(){
        return function (obj){
            var newObj=[];
            angular.forEach(obj,function(o){
                if(o.city != "上海"){
                    newObj.push(o);
                }
            });
            return newObj;
        }
    });


3.自定义过滤器方式三 
html:
<li ng-repeat=" item in list | myfilterAge">
js:
 angular.module('myApp',[],function($filterProvider, $provide, $controllerProvider){

        //自定义过滤器  方式三  仅显示年龄大于等于25岁的人员
        $filterProvider.register('myfilterAge',function(){
            return function (obj){
                var newObj=[];
                angular.forEach(obj,function(o){
                    if(o.age >= 25){
                        newObj.push(o);
                    }
                });
                return newObj;
            }
        });

        //定义服务
        $provide.service('List',function(){
                    return [
                        { name:'张三', age:20, city:'上海' },
                        { name:'李思', age:30, city:'北京' },
                        { name:'王五', age:25, city:'深圳' }
                    ]
                });

        //定义控制器
        $controllerProvider.register('myCtrl',function($scope,List){
            $scope.list=List;
        });

    });


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值