详解AngularJS中$filter过滤器使用(自定义过滤器)

 更新时间:2017年02月04日 16:10:57   作者:wjk_along  
这篇文章主要介绍了详解AngularJS中$filter过滤器使用(自定义过滤器)的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下

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过滤器使用(自定义过滤器),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • AngularJS 仿微信图片手势缩放的实例

    AngularJS 仿微信图片手势缩放的实例

    这篇文章主要介绍了AngularJS 仿微信图片手势缩放的实例的相关资料,希望大家通过本文实现这样的功能,需要的朋友可以参考下
    2017-09-09
  • 深究AngularJS如何获取input的焦点(自定义指令)

    深究AngularJS如何获取input的焦点(自定义指令)

    本篇文章主要介绍了AngularJS如何获取input的焦点(自定义指令),具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • Angular.js中ng-include用法及多标签页面的实现方式详解

    Angular.js中ng-include用法及多标签页面的实现方式详解

    这篇文章主要给大家介绍了在Angular.js中ng-include用法及多标签页面的实现方式的相关资料,文中通过示例代码介绍的非常详细,相信对大家具有一定的参考学习价值,需要的朋友们下面随着小编一起来学习学习吧。
    2017-05-05
  • 利用angularjs1.4制作的简易滑动门效果

    利用angularjs1.4制作的简易滑动门效果

    本文主要介绍了利用angularjs1.4制作的简易滑动门效果的实例,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • AngularJS ionic手势事件的使用总结

    AngularJS ionic手势事件的使用总结

    本篇文章主要介绍了AngularJS手势事件的使用总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • 利用VS Code开发你的第一个AngularJS 2应用程序

    利用VS Code开发你的第一个AngularJS 2应用程序

    这篇文章主要给大家介绍了关于利用VS Code如何开发你的第一个AngularJS 2应用程序的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友下面来一起看看吧。
    2017-12-12
  • AngularJS入门示例之Hello World详解

    AngularJS入门示例之Hello World详解

    这篇文章主要介绍了AngularJS入门示例之Hello World,较为详细的分析了AngularJS程序的原理及Hello World程序的创建步骤,需要的朋友可以参考下
    2017-01-01
  • AngularJS中的promise用法分析

    AngularJS中的promise用法分析

    这篇文章主要介绍了AngularJS中的promise用法,结合实例形式分析了AngularJS异步处理模式promise具体功能、使用方法与相关注意事项,需要的朋友可以参考下
    2017-05-05
  • 在Angular项目使用socket.io实现通信的方法

    在Angular项目使用socket.io实现通信的方法

    这篇文章主要介绍了在Angular项目使用socket.io实现通信的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Angular异步变同步处理方法

    Angular异步变同步处理方法

    今天小编就为大家分享一篇Angular异步变同步处理方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08

最新评论