自定义过滤器需要使用filter函数,格式如下:
filter("filterName',function(){
return function(target,args){
....
}
}
filter函数的第一个参数是这个自定义过滤器的名称,第二个函数是个回调函数,在这个函数中需要返回一个函数(inner),在inner函数中我们需要把具体的代码实现封装进去。而inner的第一个从参数target是目标参数,就是需要进行过滤的数据,第二个参数是需要在这个自定义过滤器中传入的参数,例如系统自带的过滤器number:2,此时2就是传入过滤器的参数,也就对应于自定义过滤器的第二个参数。
下面是个具体的例子:
<div ng-controller = 'ctrl'> <h2>{{name | define}}</h2> </div> <script> var app = angular.module('app',[]); app.filter('define',function(){ var go = function(na){ var str = na.split(' '); for(var i = 0; i < str.length; i++){ str[i] = str[i].charAt(0).toUpperCase() + str[i].substring(1); } return str.join(' '); } return go; }); app.controller('ctrl',function($scope){ $scope.name = 'this is a demo'; }); </script>
这段代码中的过滤器的作用是将文本中的单词首字母大写。(该代码借鉴于流浪猫の窝)。