详解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 相关文章推荐
javascript AOP 实现ajax回调函数使用比较方便
Nov 20 Javascript
向当前style sheet中插入一个新的style实现方法
Apr 01 Javascript
原生Js实现元素渐隐/渐现(原理为修改元素的css透明度)
Jun 24 Javascript
javascript Array.prototype.slice的使用示例
Nov 14 Javascript
jquery和js实现对div的隐藏和显示方法
Sep 26 Javascript
javascript图片延迟加载实现方法及思路
Dec 31 Javascript
js 求时间差的实现代码
Apr 26 Javascript
JQueryEasyUI之DataGrid数据显示
Nov 23 Javascript
HTML5canvas 绘制一个圆环形的进度表示实例
Dec 16 Javascript
canvas知识总结
Jan 25 Javascript
layui table 获取分页 limit的方法
Sep 20 Javascript
微信小程序 scroll-view 水平滚动实现过程解析
Oct 12 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下的权限算法的实现
2007/04/28 PHP
PHP企业级应用之常见缓存技术篇
2011/01/27 PHP
wordpress安装过程中遇到中文乱码的处理方法
2015/04/21 PHP
修复ShopNC使用QQ 互联时提示100010 错误
2015/11/08 PHP
PHP生成可点击刷新的验证码简单示例
2016/05/13 PHP
PHP实现会员账号单唯一登录的方法分析
2019/03/07 PHP
通过JAVAScript实现页面自适应
2007/01/19 Javascript
JavaScript 继承详解 第一篇
2009/08/30 Javascript
jquery $.trim()去除字符串空格的实现方法【附图例】
2016/03/30 Javascript
详谈innerHTML innerText的使用和区别
2017/08/18 Javascript
Angular.js中window.onload(),$(document).ready()的写法浅析
2017/09/28 Javascript
微信小程序实现星星评价效果
2018/11/02 Javascript
vue路由前进后退动画效果的实现代码
2018/12/10 Javascript
微信小程序 checkbox使用实例解析
2019/09/09 Javascript
jQuery实现朋友圈查看图片
2020/09/11 jQuery
[01:05:12]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS CIS-GAME
2014/05/21 DOTA
Python程序运行原理图文解析
2018/02/10 Python
Python 创建新文件时避免覆盖已有的同名文件的解决方法
2018/11/16 Python
python实现可逆简单的加密算法
2019/03/22 Python
python接口自动化(十六)--参数关联接口后传(详解)
2019/04/16 Python
django使用xadmin的全局配置详解
2019/11/15 Python
Python如何解除一个装饰器
2020/08/07 Python
详解webapp页面滚动卡顿的解决办法
2018/12/26 HTML / CSS
美国大尺码女装零售商:TORRID
2016/10/01 全球购物
介绍一下Linux文件的记录形式
2013/09/29 面试题
2014年健康教育实施方案
2014/02/17 职场文书
现金出纳岗位职责
2014/03/15 职场文书
班级学雷锋活动总结
2014/06/26 职场文书
经营目标管理责任书
2014/07/25 职场文书
2014银行领导班子群众路线对照检查材料思想汇报
2014/09/17 职场文书
专业技术人员年度考核评语
2014/12/31 职场文书
继续教育个人总结
2015/03/03 职场文书
2015年卫生监督工作总结
2015/05/21 职场文书
委托书范本格式
2019/04/18 职场文书
python plt.plot bar 如何设置绘图尺寸大小
2021/06/01 Python
Java中的继承、多态以及封装
2022/04/11 Java/Android