详解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中的bind绑定事件与文本框改变事件的临时解决方法
Aug 13 Javascript
EXTjs4.0的store的findRecord的BUG演示代码
Jun 08 Javascript
js 弹出新页面避免被浏览器、ad拦截的一种新方法
Apr 30 Javascript
JavaScript中setMonth()方法的使用详解
Jun 11 Javascript
jQuery基于ajax实现星星评论代码
Aug 07 Javascript
javascript引用类型之时间Date和数组Array
Aug 27 Javascript
vue制作加载更多功能的正确打开方式
Oct 12 Javascript
JavaScript重定向URL参数的两种方法小结
Oct 19 Javascript
jquery实现一个全局计时器(商城可用)
Jun 30 jQuery
详解如何搭建mpvue框架搭配vant组件库的小程序项目
May 16 Javascript
如何在Angular8.0下使用ngx-translate进行国际化配置
Jul 24 Javascript
vue 解决异步数据更新问题
Oct 29 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-perl哈希算法实现(times33哈希算法)
2013/12/30 PHP
PHP创建PowerPoint2007文档的方法
2015/12/10 PHP
PHP分页初探 一个最简单的PHP分页代码的简单实现
2016/06/21 PHP
PHP中使用mpdf 导出PDF文件的实现方法
2018/10/22 PHP
使用户点击后退按钮使效三行代码
2007/07/07 Javascript
Javascript连接多个数组不用concat来解决
2014/03/24 Javascript
Javascript学习笔记之 对象篇(四) : for in 循环
2014/06/24 Javascript
Node.js+Express配置入门教程详解
2016/05/19 Javascript
JavaScript来实现打开链接页面的简单实例
2016/06/02 Javascript
KnockoutJS 3.X API 第四章之数据控制流component绑定
2016/10/10 Javascript
根据输入邮箱号跳转到相应登录地址的解决方法
2016/12/13 Javascript
react-native-tab-navigator组件的基本使用示例代码
2017/09/07 Javascript
微信小程序顶部可滚动导航效果
2017/10/31 Javascript
JavaScript伪数组用法实例分析
2017/12/22 Javascript
Angular开发实践之服务端渲染
2018/03/29 Javascript
微信小程序图片加载失败时替换为默认图片的方法
2019/12/09 Javascript
Javascript 模拟mvc实现点餐程序案例详解
2020/12/24 Javascript
调试Python程序代码的几种方法总结
2015/04/28 Python
Python的装饰器模式与面向切面编程详解
2015/06/21 Python
利用python实现简单的循环购物车功能示例代码
2017/07/05 Python
Python使用pymysql从MySQL数据库中读出数据的方法
2018/07/25 Python
python多任务之协程的使用详解
2019/08/26 Python
Python 模拟生成动态产生验证码图片的方法
2020/02/01 Python
详解python常用命令行选项与环境变量
2020/02/20 Python
python encrypt 实现AES加密的实例详解
2020/02/20 Python
Python读取excel文件中带公式的值的实现
2020/04/17 Python
HTML5实现可缩放时钟代码
2017/08/28 HTML / CSS
德国孕妇装和婴童服装网上商店:bellybutton
2018/04/12 全球购物
宝宝满月酒主持词和仪式流程
2014/03/27 职场文书
居委会四风问题个人对照检查材料
2014/09/25 职场文书
村主任群众路线教育实践活动个人对照检查材料思想汇报
2014/10/01 职场文书
工厂仓管员岗位职责
2015/04/01 职场文书
2015驻村干部工作总结
2015/04/07 职场文书
校园环境卫生倡议书
2015/04/29 职场文书
python中的被动信息搜集
2021/04/29 Python
教你利用Nginx 服务搭建子域环境提升二维地图加载性能的步骤
2021/09/25 Servers