angularJs-----$filter过滤器使用 自定义过滤器

 

1.内置过滤器

 

* $filter 过滤器,是angularJs中用来处理数据以更好的方式展示给我用户。比如格式化日期,转换大小写等等。

* 过滤器即有内置过滤器也支持自定义过滤器。内置过滤器很多,可以百度。关键是如何使用:

* 1.在HTML中直接使用内置过滤器

* 2.在js代码中使用内置过滤器

* 3.自定义过滤器

*

* (1)常用内置过滤器

*       number 数字过滤器,可以设置保留数字小数点后几位等

*       date   时间格式化过滤器,可自己设置时间格式

*       filter 过滤的数据一般是数组,数组中的数据可以是对象,字符串等

*       orderBy 排序根据数组中某一个元素的属性排序等

*       lowercase 转换小写

*       uppercase 转换大写

*       limitTo   字符串剪切 使用格式{{被剪切的字符串|limitTo:数值}} 数值绝对值代表要切得字符个数,正代表从头开始切,负值相反。

*

* */

 

2.自定义过滤器

/*

* 定义格式:

* 模块名称.filter(‘过滤器名字’,function(){

*       return function(被过滤数据,条件1,条件2.。。。){

*       //过滤操作

*       }

* });

* */

    套用上面的格式定义两个简单的自定义过滤器一个带条件的,一个不带条件的。

(1)【不带条件】,功能:固定转换(有时候项目中会遇到角色代号,门店编码什么的,但是显示的时候要显示对应中文,比如字段code:101代表老板

    这时候像这种code值比较多,那就用过滤器比较好。)

 

myApp.filter("ChangeCode",function () {

return function (inputData) {

var changed = "";

switch (inputData){

case '101':changed = "老板";break;

case '102':changed = "经理";break;

case '103':changed = "员工";break;

}

return changed;

}

});

/*完成,说一下使用场景(就这个过滤器的功能)和方式。

* 场景:服务器返回的数据中有个字段code,直接放标签里<div>{{data.code}}</div>,会显示code值而不是code值对应的职称,这时候就可以用这个专门

*       针对这个转换的自定义过滤器

* 使用方式:

*           (1)HTML中:<div>{{data.code | ChangeCode}}</div>//跟内置过滤器一样的方式

*           (2)js中:变量 = $filter("ChangeCode")(被过滤的code数据)//一样的调用方式

*           

* */

 

(2)【带条件】,功能过滤掉一组数组中某个字段值为某个值的数据,比如这里定义一个过滤掉所有年龄为某个值的过滤器。参数就是年龄

 

myApp.filter("deleteByAge",function () {

return function (input,byAge,age) {

var array = [];

for(var i=0;i<input.length;i++){

if(input[i][byAge]!=age){

array.push(input[i]);

}

}

return array;

}

})

/*

* 处理一组数据的时候一般很少用在HTML当中,带条件的自定义过滤器是根据年龄值,也可以根据数组元素中的任意一个属性值进行删除过滤。

* 使用方式:变量 = $filter("deleteByAge")(数组,“属性名称”,属性值);

* */

 

 

【总结内置过滤器的使用方式】

 (1)在HTML中一般格式为:  {{被过滤的数据 | 过滤器名称:条件1:条件2.。。。}}    ;过滤条件之间用‘:’隔开.

 (2)在代码中一般格式为:  变量 = $filter("过滤器名称")(被过滤数据,过滤条件1,过滤条件2,。。。。。。)

 

【自定义过滤器】

 (1)定义格式:

           model.filter(filterName,function(){

              return function(参数1,参数2,参数3.。。。。参数N){

                  //过滤器处理部分

               }

           })

      model:模块名称

      filterName: 过滤器名称

      参数1:被过滤的数据

      参数2:一般为过滤条件,可以有多个,后面的参数3一直到参数N都是,根据需要添加。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值