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 相关文章推荐
一个很酷的拖动层的js类,兼容IE及Firefox
Jun 23 Javascript
jquery 弹出层实现代码
Oct 30 Javascript
js获取元素到文档区域document的(横向、纵向)坐标的两种方法
May 17 Javascript
jquery $(&quot;#variable&quot;) 循环改变variable的值示例
Feb 23 Javascript
js调试系列 断点与动态调试[基础篇]
Jun 18 Javascript
基于JavaScript实现自定义滚动条
Jan 25 Javascript
浅谈Javascript事件对象
Feb 05 Javascript
jQuery实现简单的滑动导航代码(移动端)
May 22 jQuery
微信小程序实现流程进度的图样式功能
Jan 16 Javascript
实例讲解JS中pop使用方法
Jan 27 Javascript
JavaScript 实现HTML DOM增删改查操作的常见方法详解
Jan 04 Javascript
关于antd tree 和父子组件之间的传值问题(react 总结)
Jun 02 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+MYSQL的文章管理系统(二)
2006/10/09 PHP
PHP实现cookie跨域session共享的方法分析
2019/08/23 PHP
屏蔽鼠标右键、Ctrl+n、shift+F10、F5刷新、退格键 的javascript代码
2007/04/01 Javascript
Convert Seconds To Hours
2007/06/16 Javascript
jQuery 全选效果实现代码
2009/03/23 Javascript
js DOM 元素ID就是全局变量
2012/09/20 Javascript
js实现带搜索功能的下拉框实时搜索实时匹配
2013/11/05 Javascript
js图片向右一张张滚动效果实例代码
2013/11/23 Javascript
纯javascript实现分页(两种方法)
2015/08/26 Javascript
jquery实现的用户注册表单提示操作效果代码分享
2015/08/28 Javascript
javascript中new关键字详解
2015/12/14 Javascript
JS实现环形进度条(从0到100%)效果
2016/07/05 Javascript
多种方式实现js图片预览
2016/12/12 Javascript
js常用的继承--组合式继承
2017/03/06 Javascript
vue 实现axios拦截、页面跳转和token 验证
2018/07/17 Javascript
利用jqgrid实现上移下移单元格功能
2018/11/07 Javascript
深入了解JavaScript代码覆盖
2019/06/13 Javascript
ES6中Symbol、Set和Map用法详解
2019/08/20 Javascript
vue图片加载失败时用默认图片替换的方法
2019/08/29 Javascript
通过实例解析json与jsonp原理及使用方法
2020/09/27 Javascript
简单介绍Python中的try和finally和with方法
2015/05/05 Python
Python编程中使用Pillow来处理图像的基础教程
2015/11/20 Python
python3.6使用pickle序列化class的方法
2018/10/22 Python
详解Python3 pickle模块用法
2019/09/16 Python
关于pytorch处理类别不平衡的问题
2019/12/31 Python
Tensorflow 多线程设置方式
2020/02/06 Python
Pycharm安装第三方库失败解决方案
2020/11/17 Python
微软瑞士官方网站:Microsoft瑞士
2018/04/20 全球购物
奥地利购买珠宝和手表网站:ELLA JUWELEN
2019/09/03 全球购物
阿里巴巴Oracle DBA笔试题答案-备份恢复类
2013/11/20 面试题
学生个人求职自荐信格式
2013/09/23 职场文书
后备干部考察材料
2014/02/12 职场文书
多媒体专业自我鉴定
2014/02/28 职场文书
深入理解python多线程编程
2021/04/18 Python
Mysql中有关Datetime和Timestamp的使用总结
2021/12/06 MySQL
Java 超详细讲解IO操作字节流与字符流
2022/03/25 Java/Android