详解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生成asp.net服务器控件的代码
Feb 04 Javascript
js获取url参数代码实例分享(JS操作URL)
Dec 13 Javascript
返回顶部按钮响应滚动且动态显示与隐藏
Oct 14 Javascript
jquery实现加载进度条提示效果
Nov 23 Javascript
JavaScript基础教程——入门必看篇
May 20 Javascript
jQuery实现点击任意位置弹出层外关闭弹出层效果
Oct 19 Javascript
JS完成画圆圈的小球
Mar 07 Javascript
jQuery+Ajax请求本地数据加载商品列表页并跳转详情页的实现方法
Jul 12 jQuery
jQuery动态生成的元素绑定事件操作实例分析
May 04 jQuery
js实现点击图片在屏幕中间弹出放大效果
Sep 11 Javascript
js面向对象之实现淘宝放大镜
Jan 15 Javascript
80行代码写一个Webpack插件并发布到npm
May 24 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 七大优势分析
2009/06/23 PHP
PHP 最大运行时间 max_execution_time修改方法
2010/03/08 PHP
使两个iframe的高度与内容自适应,且相等
2006/11/20 Javascript
ExtJS 下拉多选框lovcombo
2010/05/19 Javascript
如何确保JavaScript的执行顺序 之实战篇
2011/03/03 Javascript
JavaScript常用全局属性与方法记录积累
2013/07/03 Javascript
自定义百度分享的分享按钮
2015/03/18 Javascript
JS+CSS实现的拖动分页效果实例
2015/05/11 Javascript
jQuery实现图片与文字描述左右滑动自动切换的方法
2015/07/27 Javascript
CascadeView级联组件实现思路详解(分离思想和单链表)
2016/04/12 Javascript
Javascript中常见的逻辑题和解决方法
2016/09/17 Javascript
js 博客内容进度插件详解
2017/02/19 Javascript
vue2.0使用swiper组件实现轮播效果
2017/11/27 Javascript
JS实现图片拖拽交换效果
2018/11/30 Javascript
[原创]微信小程序获取网络类型的方法示例
2019/03/01 Javascript
使用taro开发微信小程序遇到的坑总结
2019/04/08 Javascript
JavaScript闭包原理与用法学习笔记
2020/05/29 Javascript
Python连接mysql数据库的正确姿势
2016/02/03 Python
Python实现获取照片拍摄日期并重命名的方法
2017/09/30 Python
Python3中的列表,元组,字典,字符串相关知识小结
2017/11/10 Python
wxPython的安装图文教程(Windows)
2017/12/28 Python
关于python列表增加元素的三种操作方法
2018/08/22 Python
详解python内置常用高阶函数(列出了5个常用的)
2020/02/21 Python
python 的numpy库中的mean()函数用法介绍
2020/03/03 Python
Python3-异步进程回调函数(callback())介绍
2020/05/02 Python
python的launcher用法知识点总结
2020/08/07 Python
Jupyter Notebook 安装配置与使用详解
2021/01/06 Python
莫斯科隐形眼镜网上商店:Linzi
2019/07/22 全球购物
英国独特家具和家庭用品购物网站:Cuckooland
2020/08/30 全球购物
中医专业应届生求职信
2013/11/17 职场文书
幼儿教育感言
2014/02/05 职场文书
计算机网络专业求职信
2014/06/05 职场文书
保护地球的标语
2014/06/17 职场文书
2014年食品安全工作总结
2014/12/04 职场文书
总结会主持词
2015/07/02 职场文书
大学生心理健康教育心得体会
2016/01/12 职场文书