angularJS 自訂過濾器

來源:互聯網
上載者:User

    本文使用三種方式自訂一個數組過濾器。

數組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;        });    });


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.