自定义过滤器需要使用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>
这段代码中的过滤器的作用是将文本中的单词首字母大写。(该代码借鉴于流浪猫の窝)。