AngularJS 自定义过滤器详解及实例代码


Posted in Javascript onSeptember 14, 2016

     AngularJS另一个特点就是提供了过滤器,可以通过操作UNIX下管道的方式,操作数据结果。

通过使用管道,可以便于双向的数据绑定中视图的展现。

过滤器在处理过程中,将数据变成新的格式,而且可以使用管道这种链式风格,还能接受附加的参数。

实现方式

下面看一下如何定义声明一个过滤器,首先依然是要创建我们自己的模块myAppModule

                   var myAppModule=agular.module("myApp",[]);

接下来在模块的基础上,创建过滤器:

myAppModule.filter("reverse",function(){
           
});

其中reverse是过滤器的名字,后面跟着过滤器的方法声明,在方法中返回另一个方法:

myAppModule.filter("reverse",function(){
        return function(input,uppercase){
          var out = "";
          for(var i=0 ; i<input.length; i++){
            out = input.charAt(i)+out;
          }
          if(uppercase){
            out = out.toUpperCase();
          }
          return out;
        }
      });

内部返回的方法包含了两个参数,一个是输入的值,就是我们过滤器接受的值。

如果想要实现下面的过滤器:

name | reverse

则input就是其中name代表的值。

后面的参数是可选的,我们这里接受uppercase这个bool值,判断是否要进行大小写转换。

内部实现的代码,就没必要解释了。最后返回过滤后的字符串即可。

  程序样例

<!doctype html>
<html ng-app="myApp">
  <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <script src="http://apps.bdimg.com/libs/angular.js/1.2.16/angular.min.js"></script>
  </head>
  <body>

    <div ng-controller="myAppCtrl">
      name:{{ name }}<br>
      reverse name:{{ name | reverse }}<br>
      reverse&uppercase name:{{ name | reverse:true }}
    </div>
    <script type="text/javascript">
      var myAppModule = angular.module("myApp",[]);

      myAppModule.controller("myAppCtrl",["$scope",function($scope){
        $scope.name = "xingoo";
      }]);

      myAppModule.filter("reverse",function(){
        return function(input,uppercase){
          var out = "";
          for(var i=0 ; i<input.length; i++){
            out = input.charAt(i)+out;
          }
          if(uppercase){
            out = out.toUpperCase();
          }
          return out;
        }
      });
    </script>
  </body>
</html>

运行结果

AngularJS 自定义过滤器详解及实例代码

以上就是对AngularJS 自定义过滤器 的资料整理,后续继续补充相关资料,谢谢大家对本站的支持!

Javascript 相关文章推荐
jQuery插件原来如此简单 jQuery插件的机制及实战
Feb 07 Javascript
使用JavaScript获取电池状态的方法
May 03 Javascript
Javascript与jQuery方法的隐藏与显示
Jan 19 Javascript
浅析JavaScript动画
Jun 10 Javascript
JavaScript模块化开发之SeaJS
Dec 13 Javascript
jQuery防止重复绑定事件的解决方法
May 14 Javascript
JavaScript必看小技巧(必看)
Jun 07 Javascript
JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍
Nov 10 Javascript
AngularJS双向绑定和依赖反转实例详解
Apr 15 Javascript
详解webpack2+node+react+babel实现热加载(hmr)
Aug 24 Javascript
利用原生JS实现data方法示例代码
May 28 Javascript
vue 组件之间事件触发($emit)与event Bus($on)的用法说明
Jul 28 Javascript
AngularJS 中的Promise --- $q服务详解
Sep 14 #Javascript
AngularJS bootstrap启动详解及实例代码
Sep 14 #Javascript
AngularJS equal比较对象实例详解
Sep 14 #Javascript
AngularJS API之copy深拷贝详解及实例
Sep 14 #Javascript
AngularJS $injector 依赖注入详解
Sep 14 #Javascript
详解XMLHttpRequest(二)响应属性、二进制数据、监测上传下载进度
Sep 14 #Javascript
详解XMLHttpRequest(一)同步请求和异步请求
Sep 14 #Javascript
You might like
PHP 用数组降低程序的时间复杂度
2009/12/04 PHP
PHP快速导出百万级数据到CSV或者EXCEL文件
2020/11/27 PHP
学习jquery之一
2007/04/27 Javascript
jquery 上下滚动广告
2009/06/17 Javascript
javaScript 判断字符串是否为数字的简单方法
2009/07/25 Javascript
JavaScript 异步调用框架 (Part 1 - 问题 &amp; 场景)
2009/08/03 Javascript
JavaScript 组件之旅(二)编码实现和算法
2009/10/28 Javascript
picChange 图片切换特效的函数代码
2010/05/06 Javascript
一个简单的JavaScript数据缓存系统实现代码
2010/10/24 Javascript
JavaScript中的apply()方法和call()方法使用介绍
2012/07/25 Javascript
利用谷歌地图API获取点与点的距离的js代码
2012/10/11 Javascript
解决Extjs 4 Panel作为Window组件的子组件时出现双重边框问题
2013/01/11 Javascript
jquery.boxy弹出框(后隔N秒后自动隐藏/自动跳转)
2013/01/15 Javascript
jquery插件jTimer(jquery定时器)使用方法
2013/12/23 Javascript
JavaScript中三种异步上传文件方式
2016/03/06 Javascript
js微信分享API
2020/10/11 Javascript
JavaScript中自带的 reduce()方法使用示例详解
2016/08/10 Javascript
Ajax和Comet技术总结
2017/02/19 Javascript
使用JS 插件qrcode.js生成二维码功能
2017/02/20 Javascript
微信小程序使用gitee进行版本管理
2018/09/20 Javascript
微信小程序3D轮播实现代码
2019/09/19 Javascript
Vue可自定义tab组件用法实例
2019/10/24 Javascript
基于python OpenCV实现动态人脸检测
2018/05/25 Python
python使用socket实现的传输demo示例【基于TCP协议】
2019/09/24 Python
如何利用Python写个坦克大战
2020/11/18 Python
python实现录制全屏和选择区域录屏功能
2021/02/05 Python
利用纯CSS3实现动态的自行车特效源码
2017/01/20 HTML / CSS
美国时尚女装在线:Missguided
2016/12/03 全球购物
日本最大的旅游网站:Rakuten Travel(乐天旅游)
2018/08/02 全球购物
迷你分体式空调:SoGoodToBuy
2018/08/07 全球购物
导师工作推荐信范文
2014/05/17 职场文书
项目申报专员岗位职责
2014/07/09 职场文书
查摆剖析材料范文
2014/09/30 职场文书
有关三国演义的读书笔记
2015/06/25 职场文书
新学期家长寄语2016
2015/12/03 职场文书
Vue图片裁剪组件实例代码
2021/07/02 Vue.js