详解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 相关文章推荐
兼容IE和Firefox火狐的上下、左右循环无间断滚动JS代码
Apr 19 Javascript
js禁止页面刷新禁止用F5键刷新禁止右键的示例代码
Sep 23 Javascript
jquery队列函数用法实例
Dec 16 Javascript
JavaScript获取当前网页最后修改时间的方法
Apr 03 Javascript
jquery读取xml文件实现省市县三级联动的方法
May 29 Javascript
微信小程序 ecshop地址三级联动实现实例代码
Feb 28 Javascript
vue.js指令和组件详细介绍及实例
Apr 06 Javascript
node.js 中间件express-session使用详解
May 20 Javascript
打通前后端构建一个Vue+Express的开发环境
Jul 17 Javascript
Vue实现本地购物车功能
Dec 05 Javascript
20个必会的JavaScript面试题(小结)
Jul 02 Javascript
微信小程序APP的生命周期及页面的生命周期
Apr 19 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与javascript对多项选择的处理
2006/10/09 PHP
用PHP读取flv文件的播放时间长度
2009/09/03 PHP
MySQL时间字段究竟使用INT还是DateTime的说明
2012/02/27 PHP
浅析php中常量,变量的作用域和生存周期
2013/08/10 PHP
PHP的foreach中使用引用时需要注意的一个问题和解决方法
2014/05/29 PHP
PHP生成数组再传给js的方法
2014/08/07 PHP
高质量PHP代码的50个实用技巧必备(下)
2016/01/22 PHP
浅谈PHP命令执行php文件需要注意的问题
2016/12/16 PHP
php过滤输入操作之htmlentities与htmlspecialchars用法分析
2017/02/17 PHP
B/S开发中常用javaScript技术与代码
2007/03/09 Javascript
JS 实现完美include载入实现代码
2010/08/05 Javascript
按给定几率进行随机抽取的js代码
2010/12/28 Javascript
jQuery实现鼠标移到元素上动态提示消息框效果
2013/10/20 Javascript
JavaScript中this的使用详解
2013/11/08 Javascript
js快速排序的实现代码
2013/12/08 Javascript
JavaScript Math.ceil 方法(对数值向上取整)
2015/01/09 Javascript
jquery左右全屏大尺寸多图滑动效果代码分享
2015/08/28 Javascript
谈谈PHP中相对路径的问题与绝对路径的使用
2016/08/16 Javascript
浅谈jQuery双事件多重加载的问题
2016/10/05 Javascript
如何使用pm2快速将项目部署到远程服务器
2019/03/12 Javascript
javascript canvas实现简易时钟例子
2020/09/05 Javascript
Python排序搜索基本算法之堆排序实例详解
2017/12/08 Python
pytorch中torch.max和Tensor.view函数用法详解
2020/01/03 Python
Python reques接口测试框架实现代码
2020/07/28 Python
sqlalchemy实现时间列自动更新教程
2020/09/02 Python
python获得命令行输入的参数的两种方式
2020/11/02 Python
Janie and Jack美国官网:GAP旗下的高档童装品牌
2019/09/09 全球购物
Ruby如何定义一个类
2012/10/08 面试题
跟单文员的岗位职责
2013/11/14 职场文书
报关报检委托书
2014/04/08 职场文书
党员群众路线对照检查材料
2014/08/31 职场文书
开业典礼致辞
2015/07/29 职场文书
情况说明书怎么写
2015/10/08 职场文书
商业计划书格式、范文
2019/03/21 职场文书
关于MySQL临时表为什么可以重名的问题
2022/03/22 MySQL
golang三种设计模式之简单工厂、方法工厂和抽象工厂
2022/04/10 Golang