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 相关文章推荐
javascript 实现父窗口引用弹出窗口的值的脚本
Aug 07 Javascript
HTA版JSMin(省略修饰语若干)基于javascript语言编写
Dec 24 Javascript
一款jquery特效编写的大度宽屏焦点图切换特效的实例代码
Aug 05 Javascript
浅谈JavaScript函数节流
Dec 09 Javascript
js实现进度条的方法
Feb 13 Javascript
js实现的鼠标滚轮滚动切换页面效果(类似360默认页面滚动切换效果)
Jan 27 Javascript
总结十个Angular.js由浅入深的面试问题
Aug 26 Javascript
详解用webpack2搭建angular2的项目
Jun 22 Javascript
JS原生数据双向绑定实现代码
Aug 14 Javascript
vue data引入本地图片的两种方式小结
Nov 13 Javascript
JS实现表单中点击小眼睛显示隐藏密码框中的密码
Apr 13 Javascript
vue移动端的左右滑动事件详解
Jun 17 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 Session_Regenerate_ID函数双释放内存破坏漏洞
2011/01/27 PHP
使用PHP会话(Session)实现用户登陆功能
2013/06/29 PHP
Apache连接PHP后无法启动问题解决思路
2015/06/18 PHP
Yii2实现log输出到file及database的方法
2016/11/12 PHP
Laravel配置全局公共函数的方法步骤
2019/05/09 PHP
Package.js  现代化的JavaScript项目make工具
2012/05/23 Javascript
通过Jquery的Ajax方法读取将table转换为Json
2014/05/31 Javascript
JavaScript encodeURI 和encodeURIComponent
2015/12/04 Javascript
深入理解jquery中的事件与动画
2016/05/24 Javascript
JavaScript的String字符串对象常用操作总结
2016/05/26 Javascript
js初始化验证实例详解
2016/11/26 Javascript
jQuery实现新闻播报滚动及淡入淡出效果示例
2018/03/23 jQuery
vue与django集成打包的实现方法
2019/11/11 Javascript
使用Promise封装小程序wx.request的实现方法
2019/11/13 Javascript
js实现div色块拖动录制
2020/01/16 Javascript
JS中队列和双端队列实现及应用详解
2020/09/29 Javascript
Chrome插件开发系列一:弹窗终结者开发实战
2020/10/02 Javascript
[03:52]DOTA2英雄基础教程 酒仙
2013/12/23 DOTA
[08:08]DOTA2-DPC中国联赛2月28日Recap集锦
2021/03/11 DOTA
Python中操作符重载用法分析
2016/04/29 Python
Python实现判断一个字符串是否包含子串的方法总结
2017/11/21 Python
Python 中字符串拼接的多种方法
2018/07/30 Python
python实现遍历文件夹修改文件后缀
2018/08/28 Python
python如何统计代码运行的时长
2019/07/24 Python
Python tkinter和exe打包的方法
2020/02/05 Python
opencv python 图片读取与显示图片窗口未响应问题的解决
2020/04/24 Python
俄罗斯街头服装品牌:Black Star Wear
2017/03/01 全球购物
中国双语服务优势的在线购票及活动平台:247tickets
2018/10/26 全球购物
世界上最受欢迎的花店:1-800-Flowers.com
2020/06/01 全球购物
机电工程学生自荐信范文
2013/12/07 职场文书
法学专业毕业生自荐信范文
2013/12/18 职场文书
食堂管理制度范本
2015/08/04 职场文书
校运会班级霸气口号
2015/12/24 职场文书
2019入党申请书格式和范文
2019/06/25 职场文书
吃通javascript正则表达式
2021/04/21 Javascript
Python趣味挑战之教你用pygame画进度条
2021/05/31 Python