AngularJS:自定义过滤器

时间:2023-03-09 15:43:05
AngularJS:自定义过滤器
表达式:
        {{ expression | filter1 | filter2 | ... }}
        {{ expression | filterName : parameter1 : ...parameterN }}
        ng-repeat="a in array | filter "

一、第一种单参数过滤器:

原有数据:a乔乐
过滤数据:a乔乐[追加内容:单参数在此过滤!]

本节课程源码:

1
2
3
4
5
6
<h3>一、第一种过滤器:</h3><br/>
原有数据:{{names[0].name}}<br/>
过滤数据:{{names[0].name | filter1}}
1
2
3
4
5
6
app.filter('filter1', function(){
    return function(item){
        return item + '[追加内容:单参数在此过滤!]';
    }
});

二、第二种带参数过滤器:

原有数据:a乔乐
过滤数据:a乔乐!!!!!

本节课程源码:

1
2
3
4
5
6
<h3>二、第二种带参数过滤器:</h3><br/>
原有数据:{{names[0].name}}<br/>
过滤数据:{{names[0].name | filter2:5 }}
1
2
3
4
5
6
7
8
9
app.filter('filter2', function(){
    return function(item,num){
        for(var i = 0;i < num;i++){
            item = item + '!';
        }
        return item;
    }
});

三、第三种数组过滤器:

  • 0、aa===
  • 1、bb===
  • 2、vv===
  • 3、mm===

本节课程源码:

1
2
3
4
5
6
7
<h3>三、第三种数组过滤器:</h3><br/>
<ul>
    <li ng-repeat="word in ['aa','bb','vv','mm'] | filter3">{{word}}</li>
</ul>
1
2
3
4
5
6
7
8
9
10
11
app.filter('filter3', function(){
    return function(items){
        angular.forEach(items,function(item, i){
            item = i+'、'+ item + '===';
            console.log(item);
            items[i] = item;
        });
        return items;
    }
});

四、首字母大写过滤器:

This Is Angular Js Course On Each.com

本节课程源码:

1
2
3
4
5
<h3>四、首字母大写过滤器:</h3><br/>
{{'this is angular js course on each.com' | filter4}}
1
2
3
4
5
6
7
8
9
10
app.filter('filter4', function(){
    return function(input) {
        var words = input.split(' ');
        for (var i = 0; i < words.length; i++) {
          words[i] = words[i].charAt(0).toUpperCase() + words[i].slice(1);
        }
        return words.join(' ');
    }
});