详解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 &amp; DHTML 实例编程(教程)基础知识
Jun 02 Javascript
csdn 博客的css样式 v3
Feb 24 Javascript
Javascript 学习笔记 错误处理
Jul 30 Javascript
60个很实用的jQuery代码开发技巧收集
Dec 15 Javascript
js判断是否按下了Shift键的方法
Jan 27 Javascript
javascript时间差插件分享
Jul 18 Javascript
AngularJS入门教程之表格实例详解
Jul 27 Javascript
JavaScript之创意时钟项目(实例讲解)
Oct 23 Javascript
实例讲解Vue.js中router传参
Apr 22 Javascript
原生JS实现的雪花飘落动画效果
May 03 Javascript
微信小程序实现分享到朋友圈功能
Jul 19 Javascript
JS获取并处理php数组的方法实例分析
Sep 04 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
在“咖啡之国”感受咖啡文化
2021/03/03 咖啡文化
session在php5.3中的变化 session_is_registered() is deprecated in
2013/11/12 PHP
PHP实现对二维数组某个键排序的方法
2016/09/14 PHP
详解配置 Apache 服务器支持 PHP 文件的解析
2017/02/15 PHP
JQuery 构建客户/服务分离的链接模型中Table中的排序分析
2010/01/22 Javascript
ext combox 下拉框不出现自动提示,自动选中的解决方法
2010/02/24 Javascript
jquery iframe操作详细解析
2013/11/20 Javascript
jquery默认校验规则整理
2014/03/24 Javascript
bootstrap table 服务器端分页例子分享
2015/02/10 Javascript
jQuery文本框得到与失去焦点动态改变样式效果
2016/09/08 Javascript
有关suggest快速删除后仍然出现下拉列表的bug问题
2016/12/02 Javascript
JavaScript中最常见的三个面试题解析
2017/03/04 Javascript
Form表单上传文件(type=&quot;file&quot;)的使用
2017/08/03 Javascript
vue实现裁切图片同时实现放大、缩小、旋转功能
2018/03/02 Javascript
Vue项目中添加锁屏功能实现思路
2018/06/29 Javascript
关于AngularJS中ng-repeat不更新视图的解决方法
2018/09/30 Javascript
详解微信小程序-获取用户session_key,openid,unionid - 后端为nodejs
2019/04/29 NodeJs
vue iview多张图片大图预览、缩放翻转
2019/07/13 Javascript
使用Vue CLI创建typescript项目的方法
2019/08/09 Javascript
JavaScript 装逼指南(js另类写法)
2020/05/10 Javascript
[01:16:50]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第一场 3月7日
2021/03/11 DOTA
Go语言基于Socket编写服务器端与客户端通信的实例
2016/02/19 Python
Python三种遍历文件目录的方法实例代码
2018/01/19 Python
python编程嵌套函数实例代码
2018/02/11 Python
Python随机函数库random的使用方法详解
2019/08/21 Python
5个你不知道的HTML5的接口介绍
2013/08/07 HTML / CSS
2014年圣诞节倒计时网页的制作过程
2014/12/05 HTML / CSS
英国最大的电子零件及配件零售商:Partmaster
2017/04/24 全球购物
北美个性化礼品商店:Things Remembered
2018/06/12 全球购物
自主招生自荐书
2013/11/29 职场文书
迎新晚会主持词
2014/03/24 职场文书
公务员诚信承诺书
2014/05/26 职场文书
四年级学生期末评语
2014/12/26 职场文书
趣味运动会新闻稿
2015/07/17 职场文书
Redis6.0搭建集群Redis-cluster的方法
2021/05/08 Redis
python中字符串String及其常见操作指南(方法、函数)
2022/04/06 Python