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 相关文章推荐
两种WEB下的模态对话框 (asp.net或js的分别实现)
Dec 02 Javascript
jQuery实现类似淘宝购物车全选状态示例
Jun 26 Javascript
javascript对话框使用方法(警告框 javascript确认框 提示框)
Jan 07 Javascript
关于jQuery中的each方法(jQuery到底干了什么)
Mar 05 Javascript
extJS中常用的4种Ajax异步提交方式
Mar 07 Javascript
一个小例子解释如何来阻止Jquery事件冒泡
Jul 17 Javascript
jQuery实现的类似淘宝网站搜索框样式代码分享
Aug 24 Javascript
详解vuelidate 对于vueJs2.0的验证解决方案
Mar 09 Javascript
vue快捷键与基础指令详解
Jun 01 Javascript
利用JS如何计算字符串所占字节数示例代码
Sep 13 Javascript
原生js实现文件上传、下载、封装等实例方法
Jan 05 Javascript
vue项目实现减少app.js和vender.js的体积操作
Nov 12 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
用libtemplate实现静态网页生成
2006/10/09 PHP
深入理解用mysql_fetch_row()以数组的形式返回查询结果
2013/06/05 PHP
php四种定界符详解
2017/02/16 PHP
jQuery库与其他JS库冲突的解决办法
2010/02/07 Javascript
基于jQuery的实现简单的分页控件
2010/10/10 Javascript
jQuery+ajax实现鼠标单击修改内容的方法
2014/06/27 Javascript
JavaScript实现动态删除列表框值的方法
2015/08/12 Javascript
Eclipse编辑jsp、js文件时卡死现象的解决办法汇总
2016/02/02 Javascript
详谈js中数组(array)和对象(object)的区别
2017/02/27 Javascript
JavaScript实现滑动导航栏效果
2017/08/30 Javascript
vue 设置proxyTable参数进行代理跨域
2018/04/09 Javascript
jQuery实现带右侧索引功能的通讯录示例【附源码下载】
2018/04/17 jQuery
解决vue keep-alive 数据更新的问题
2018/09/21 Javascript
JS实现进度条动态加载特效
2020/03/25 Javascript
浅谈nuxtjs校验登录中间件和混入(mixin)
2020/11/06 Javascript
python万年历实现代码 含运行结果
2017/05/20 Python
Python矩阵常见运算操作实例总结
2017/09/29 Python
Python将字符串常量转化为变量方法总结
2019/03/17 Python
Python facenet进行人脸识别测试过程解析
2019/08/16 Python
python3实现的zip格式压缩文件夹操作示例
2019/08/17 Python
Pytorch转keras的有效方法,以FlowNet为例讲解
2020/05/26 Python
详细分析Python可变对象和不可变对象
2020/07/09 Python
python如何将图片转换素描画
2020/09/08 Python
Python开发.exe小工具的详细步骤
2021/01/27 Python
python SOCKET编程基础入门
2021/02/27 Python
深入浅出CSS3 background-clip,background-origin和border-image教程
2011/01/27 HTML / CSS
深入解析HTML5的IndexedDB索引数据库
2015/09/14 HTML / CSS
德国狗狗用品在线商店:Schecker
2017/03/17 全球购物
英国领先的体验日提供商:Buyagift
2019/04/19 全球购物
你所在的项目是如何确定版本号的
2015/12/28 面试题
解除财产保全担保书
2014/05/20 职场文书
领导干部作风整顿剖析材料
2014/10/11 职场文书
新教师个人工作总结
2015/02/06 职场文书
2015年评职称工作总结范文
2015/04/20 职场文书
创业计划书之婴幼儿游泳馆
2019/09/11 职场文书
解决goland 导入项目后import里的包报红问题
2021/05/06 Golang