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(inputData){
varchanged="";
switch){
case'101':"老板";break;
'102'"经理";
'103'"员工";
}
;
}
});
完成,说一下使用场景(就这个过滤器的功能)和方式。
场景:服务器返回的数据中有个字段code,直接放标签里<div>{{data.code}}</div>,会显示code值而不是code值对应的职称,这时候就可以用这个专门
针对这个转换的自定义过滤器
使用方式:
(1)HTML中:<div>{{data.code | ChangeCode}}</div>//跟内置过滤器一样的方式
(2)js中:变量 = $filter("ChangeCode")(被过滤的code数据)//一样的调用方式

(2)【带条件】,功能过滤掉一组数组中某个字段值为某个值的数据,比如这里定义一个过滤掉所有年龄为某个值的过滤器。参数就是年龄
"deleteByAge"{
inputbyAgeage{
array[];
for(i=0;<length++){
if[][]!=){
push]);
}
}
;
}
})

处理一组数据的时候一般很少用在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都是,根据需要添加

转载自:http://blog.csdn.net/wjk_along/article/details/54863602

相关文章

ANGULAR.JS:NG-SELECTANDNG-OPTIONSPS:其实看英文文档比看中...
AngularJS中使用Chart.js制折线图与饼图实例  Chart.js 是...
IE浏览器兼容性后续前言 继续尝试解决IE浏览器兼容性问题,...
Angular实现下拉菜单多选写这篇文章时,引用文章地址如下:h...
在AngularJS应用中集成科大讯飞语音输入功能前言 根据项目...
Angular数据更新不及时问题探讨前言 在修复控制角标正确变...