详解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进行拖拽
Jul 20 Javascript
基于jquery的不规则矩形的排列实现代码
Apr 16 Javascript
用jQuery模拟select下拉框的简单示例代码
Jan 26 Javascript
一个简单的jquery的多选下拉框(自写)
May 05 Javascript
JavaScript在IE和FF下的兼容性问题
May 19 Javascript
百度地图自定义控件分享
Mar 04 Javascript
jQuery实现列表内容的动态载入特效
Aug 08 Javascript
JS文件/图片从电脑里面拖拽到浏览器上传文件/图片
Mar 08 Javascript
jQuery中的deferred对象和extend方法详解
May 08 jQuery
vue 2.0封装model组件的方法
Aug 03 Javascript
Angular表格神器ui-grid应用详解
Sep 29 Javascript
再也不怕 JavaScript 报错了,怎么看怎么处理都在这儿
Dec 09 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数组总结篇(一)
2008/09/30 PHP
php 截取字符串并以零补齐str_pad() 函数
2011/05/07 PHP
深入apache配置文件httpd.conf的部分参数说明
2013/06/28 PHP
PHP判断文件是否被引入的方法get_included_files用法示例
2016/11/29 PHP
PHP获取二叉树镜像的方法
2018/01/17 PHP
php ajax数据传输和响应方法
2018/08/21 PHP
php判断数组是否为空的实例方法
2020/05/10 PHP
JavaScript版DateAdd和DateDiff函数代码
2012/03/01 Javascript
Javascript中Array用法实例分析
2015/06/13 Javascript
jQuery超酷平面式时钟效果代码分享
2020/03/30 Javascript
快速掌握Node.js模块封装及使用
2016/03/21 Javascript
js实现上传图片及时预览
2016/05/07 Javascript
jQuery的框架介绍
2016/05/11 Javascript
JS插件plupload.js实现多图上传并显示进度条
2016/11/29 Javascript
基于jQuery实现的幻灯图片切换
2016/12/02 Javascript
实例详解Node.js 函数
2018/06/10 Javascript
使用validate.js实现表单数据提交前的验证方法
2018/09/04 Javascript
javascript验证form表单数据的案例详解
2019/03/25 Javascript
详解在Javascript中进行面向切面编程
2019/04/28 Javascript
Bootstrap实现前端登录页面带验证码功能完整示例
2020/03/26 Javascript
解决Mint-ui 框架Popup和Datetime Picker组件滚动穿透的问题
2020/11/04 Javascript
vue项目中js-cookie的使用存储token操作
2020/11/13 Javascript
Python使用函数默认值实现函数静态变量的方法
2014/08/18 Python
Python全局变量用法实例分析
2016/07/19 Python
Python最火、R极具潜力 2017机器学习调查报告
2017/12/11 Python
Numpy中的mask的使用
2018/07/21 Python
python交互界面的退出方法
2019/02/16 Python
python实现Virginia无密钥解密
2019/03/20 Python
Python获取excel内容及相关操作代码实例
2020/08/10 Python
JOSEPH官网:英国奢侈时尚品牌
2018/01/31 全球购物
大专生工程监理求职信
2013/10/04 职场文书
雏鹰争章活动总结
2014/05/09 职场文书
创新社会管理心得体会
2014/09/12 职场文书
2014年售后服务工作总结
2014/11/18 职场文书
投诉书范文
2015/07/02 职场文书
MySQL 分区表中分区键为什么必须是主键的一部分
2022/03/17 MySQL