详解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 相关文章推荐
Jquery中获取iframe的代码
Jan 11 Javascript
教你用jquery实现iframe自适应高度
Jun 11 Javascript
javascript引擎长时间独占线程造成卡顿的解决方案
Dec 03 Javascript
JavaScript清空数组元素的两种方法简单比较
Jul 10 Javascript
jQuery中$.ajax()和$.getJson()同步处理详解
Aug 12 Javascript
Angular的Bootstrap(引导)和Compiler(编译)机制
Jun 20 Javascript
Vue学习笔记进阶篇之过渡状态详解
Jul 14 Javascript
ReactNative踩坑之配置调试端口的解决方法
Jul 28 Javascript
jQuery实现验证用户登录
Dec 10 jQuery
ES6中Promise的使用方法实例总结
Feb 18 Javascript
vue:el-input输入时限制输入的类型操作
Aug 05 Javascript
浅谈vue2的$refs在vue3组合式API中的替代方法
Apr 18 Vue.js
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者的疑难问答(1)
2006/10/09 PHP
PHP中将字符串转化为整数(int) intval() printf() 性能测试
2020/03/20 PHP
yii2.0实现pathinfo的形式访问的配置方法
2016/04/06 PHP
javascript+mapbar实现地图定位
2010/04/09 Javascript
Document对象内容集合(比较全)
2010/09/06 Javascript
JS定义回车事件(实现代码)
2013/07/08 Javascript
javascript得到当前页的来路即前一页地址的方法
2014/02/18 Javascript
javascript+ajax实现产品页面加载信息
2015/07/09 Javascript
HTML页面定时跳转方法解析(2种任选)
2016/12/22 Javascript
详解jQuery中ajax.load()方法
2017/01/25 Javascript
AngularJS+Bootstrap3多级导航菜单的实现代码
2017/08/16 Javascript
用vue封装插件并发布到npm的方法步骤
2017/10/18 Javascript
详解使用webpack打包编写一个vue-toast插件
2017/11/08 Javascript
AngularJS实现图片上传和预览功能的方法分析
2017/11/08 Javascript
laravel5.3 vue 实现收藏夹功能实例详解
2018/01/21 Javascript
angularJs中ng-model-options设置数据同步的方法
2018/09/30 Javascript
关于Vue源码vm.$watch()内部原理详解
2019/04/26 Javascript
vue.js 2.*项目环境搭建、运行、打包发布的详细步骤
2019/05/01 Javascript
JS使用H5实现图片预览功能
2019/09/30 Javascript
ES6实现图片切换特效代码
2020/01/14 Javascript
Vue 实现监听窗口关闭事件,并在窗口关闭前发送请求
2020/09/01 Javascript
python连接mongodb操作数据示例(mongodb数据库配置类)
2013/12/31 Python
Python 爬虫爬取指定博客的所有文章
2016/02/17 Python
Python中的错误和异常处理简单操作示例【try-except用法】
2017/07/25 Python
基于python 等频分箱qcut问题的解决
2020/03/03 Python
Pytorch使用PIL和Numpy将单张图片转为Pytorch张量方式
2020/05/25 Python
Python基于argparse与ConfigParser库进行入参解析与ini parser
2021/02/02 Python
幼儿园运动会入场词
2014/02/10 职场文书
中学生的1000字检讨书
2014/10/11 职场文书
政风行风评议心得体会
2014/10/21 职场文书
乡镇一岗双责责任书
2015/01/29 职场文书
中学生社区服务活动报告
2015/02/05 职场文书
稽核岗位职责
2015/02/10 职场文书
学生检讨书怎么写
2015/05/07 职场文书
首次购房证明
2015/06/19 职场文书
HTML5之高度塌陷问题的解决
2022/06/01 HTML / CSS