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


Posted in Javascript onFebruary 04, 2017

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都是,根据需要添加。

以上所述是小编给大家介绍的详解AngularJS中$filter过滤器使用(自定义过滤器),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
csdn 批量接受好友邀请
Feb 19 Javascript
基于javascript实现listbox左右移动
Jan 29 Javascript
JavaScript用JSONP跨域请求数据实例详解
Jan 06 Javascript
Vue.js自定义指令的用法与实例解析
Jan 18 Javascript
JS实现简单短信验证码界面
Aug 07 Javascript
浅谈Angular路由复用策略
Oct 04 Javascript
js实现鼠标移动到图片产生遮罩效果
Oct 21 Javascript
详解vue.js数据传递以及数据分发slot
Jan 20 Javascript
Vue用v-for给循环标签自身属性添加属性值的方法
Oct 18 Javascript
详解js中let与var声明变量的区别
Apr 05 Javascript
Vue实现商品分类菜单数量提示功能
Jul 26 Javascript
微信小程序自定义头部导航栏(组件化)
Nov 15 Javascript
js常用DOM方法详解
Feb 04 #Javascript
JavaScript数组操作详解
Feb 04 #Javascript
jQuery使用方法
Feb 04 #Javascript
touch.js 拖动、缩放、旋转 (鼠标手势)功能代码
Feb 04 #Javascript
jQuery插件autocomplete使用详解
Feb 04 #Javascript
d3.js中冷门却实用的内置函数总结
Feb 04 #Javascript
原生js开发的日历插件
Feb 04 #Javascript
You might like
计算php页面运行时间的函数介绍
2013/07/01 PHP
php算法实例分享
2015/07/14 PHP
由prototype_1.3.1进入javascript殿堂-类的初探
2006/11/06 Javascript
JQuery中对服务器控件 DropdownList, RadioButtonList, CheckboxList的操作总结
2011/06/28 Javascript
js在输入框屏蔽按键,只能键入数字的示例代码
2014/01/03 Javascript
解决自定义$(id)的方法与jquery选择器$冲突的问题
2014/06/14 Javascript
JS实现很酷的EMAIL地址添加功能实例
2015/02/28 Javascript
javascript制作游戏开发碰撞检测的封装代码
2015/03/31 Javascript
javascript实现uploadify上传格式以及个数限制
2015/11/23 Javascript
全面解析Bootstrap中scrollspy(滚动监听)的使用方法
2016/06/06 Javascript
Ionic+AngularJS实现登录和注册带验证功能
2017/02/09 Javascript
jquery编写日期选择器
2017/03/16 Javascript
vue项目关闭eslint校验
2018/03/21 Javascript
使用Vue开发动态刷新Echarts组件的教程详解
2018/03/22 Javascript
原生JS实现的轮播图功能详解
2018/08/06 Javascript
vue.js 中使用(...)运算符报错的解决方法
2018/08/09 Javascript
Node.js API详解之 vm模块用法实例分析
2020/05/27 Javascript
JSON获取属性值方法代码实例
2020/06/30 Javascript
[03:55]DOTA2完美大师赛选手传记——LFY.MONET
2017/11/18 DOTA
实例讲解Python编程中@property装饰器的用法
2016/06/20 Python
python学习入门细节知识点
2018/03/29 Python
浅谈Python小波分析库Pywavelets的一点使用心得
2019/07/09 Python
python实现通过flask和前端进行数据收发
2019/08/22 Python
在pycharm中显示python画的图方法
2019/08/31 Python
Tensorflow不支持AVX2指令集的解决方法
2020/02/03 Python
Pandas —— resample()重采样和asfreq()频度转换方式
2020/02/26 Python
BeautifulSoup中find和find_all的使用详解
2020/12/07 Python
Skyscanner阿联酋:全球领先的旅游搜索平台
2017/11/25 全球购物
大学生职业生涯规划书的基本内容
2014/01/06 职场文书
幼儿园毕业教师感言
2014/02/21 职场文书
观看《永远的雷锋》心得体会
2014/03/12 职场文书
食品采购员岗位职责
2014/04/14 职场文书
巾帼志愿者活动方案
2014/08/17 职场文书
linux下导入、导出mysql数据库命令的实现方法
2021/05/26 MySQL
python爬取某网站原图作为壁纸
2021/06/02 Python
Python实现位图分割的效果
2021/11/20 Python