微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

详解AngularJS中$filter过滤器使用(自定义过滤器)

1.内置过滤器

rush:js;"> * $filter 过滤器,是angularJs中用来处理数据以更好的方式展示给我用户。比如格式化日期,转换大小写等等。 * 过滤器即有内置过滤器也支持自定义过滤器。内置过滤器很多,可以百度。关键是如何使用: * 1.在HTML中直接使用内置过滤器 * 2.在js代码中使用内置过滤器 * 3.自定义过滤器 * * (1)常用内置过滤器 * number 数字过滤器,可以设置保留数字小数点后几位等 * date 时间格式化过滤器,可自己设置时间格式 * filter 过滤的数据一般是数组,数组中的数据可以是对象,字符串等 * orderBy 排序根据数组中某一个元素的属性排序等 * lowercase 转换小写 * uppercase 转换大写 * limitTo 字符串剪切 使用格式{{被剪切的字符串|limitTo:数值}} 数值绝对值代表要切得字符个数,正代表从头开始切,负值相反。 * * */

2.自定义过滤器

rush:js;"> /* * 定义格式: * 模块名称.filter(‘过滤器名字',function(){ * return function(被过滤数据,条件1,条件2.。。。){ * //过滤操作 * } * }); * */

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

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

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

rush:js;"> 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,直接放标签
{{data.code}}
,会显示code值而不是code值对应的职称,这时候就可以用这个专门 * 针对这个转换的自定义过滤器 * 使用方式: * (1)HTML中:
{{data.code | ChangeCode}}
//跟内置过滤器一样的方式 * (2)js中:变量 = $filter("ChangeCode")(被过滤的code数据)//一样的调用方式 * * */

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

rush:js;"> myApp.filter("deleteByAge",function () { return function (input,byAge,age) { var array = []; for(var i=0;i自定义过滤器是根据年龄值,也可以根据数组元素中的任意一个属性值进行删除过滤。 * 使用方式:变量 = $filter("deleteByAge")(数组,“属性名称”,属性值); * */

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

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

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

自定义过滤器】

(1)定义格式:

rush:js;"> model.filter(filterName,function(){ return function(参数1,参数2,参数3.。。。。参数N){ //过滤器处理部分 } })

model:模块名称

filterName: 过滤器名称

参数1:被过滤的数据

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

以上所述是小编给大家介绍的详解AngularJS中$filter过滤器使用(自定义过滤器)。编程之家 jb51.cc 收集整理的教程希望能对你有所帮助,如果觉得编程之家不错,可分享给好友!感谢支持

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐