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 相关文章推荐
检测是否已安装 .NET Framework 3.5的js脚本
Feb 14 Javascript
js复制到剪切板的实例方法
Jun 28 Javascript
jquery与prototype框架的详细对比
Nov 21 Javascript
禁用JavaScript控制台调试的方法
Mar 07 Javascript
javascript动态控制服务器控件实例
Sep 05 Javascript
js print打印网页指定区域内容的简单实例
Nov 01 Javascript
vuejs父子组件通信的问题
Jan 11 Javascript
node.js入门学习之url模块
Feb 25 Javascript
angularjs实现下拉列表的选中事件示例
Mar 03 Javascript
微信小程序动画(Animation)的实现及执行步骤
Oct 28 Javascript
javascript移动端 电子书 翻页效果实现代码
Sep 07 Javascript
Nest.js散列与加密实例详解
Feb 24 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
虫族 ZERG 概述
2020/03/14 星际争霸
php文件上传的简单实例
2013/10/19 PHP
win7 wamp 64位 php环境开启curl服务遇到的问题及解决方法
2018/09/16 PHP
PHP针对redis常用操作实例详解
2019/08/17 PHP
实例:尽可能写友好的Javascript代码
2006/10/09 Javascript
JQuery实现超链接鼠标提示效果的方法
2015/06/10 Javascript
jQuery简单动画变换效果实例分析
2016/07/04 Javascript
详细总结Javascript中的焦点管理
2016/09/17 Javascript
jQuery制作图片旋转效果
2017/02/02 Javascript
angular.js+node.js实现下载图片处理详解
2017/03/31 Javascript
vue2.0构建单页应用最佳实战
2017/04/01 Javascript
React学习笔记之高阶组件应用
2018/06/02 Javascript
JS对象与json字符串相互转换实现方法示例
2018/06/14 Javascript
如何把vuejs打包出来的文件整合到springboot里
2018/07/26 Javascript
微信小程序通过js实现瀑布流布局详解
2019/08/28 Javascript
详解基于Vue的支持数据双向绑定的select组件
2019/09/02 Javascript
微信小程序实现录音功能
2019/11/22 Javascript
vue+Element中table表格实现可编辑(select下拉框)
2020/05/21 Javascript
jQuery实现朋友圈查看图片
2020/09/11 jQuery
python读取二进制mnist实例详解
2017/05/31 Python
python最小生成树kruskal与prim算法详解
2019/01/17 Python
CSS3 background-image颜色渐变的实现代码
2018/09/13 HTML / CSS
利用CSS3实现单选框动画特效示例代码
2016/09/26 HTML / CSS
css3 仿写阿里云水纹效果的示例代码
2018/02/10 HTML / CSS
使用canvas对多图片拼合并导出图片的方法
2018/08/28 HTML / CSS
金融专业毕业生推荐信
2013/11/26 职场文书
服装厂厂长岗位职责
2013/12/27 职场文书
银行职业规划书范文
2013/12/28 职场文书
保证书范文大全
2014/04/28 职场文书
党员群众路线学习心得体会
2014/11/04 职场文书
驳回起诉民事裁定书
2015/05/19 职场文书
抢劫罪辩护词
2015/05/21 职场文书
Redis命令处理过程源码解析
2022/02/12 Redis
「我的青春恋爱物语果然有问题。-妄言录-」第20卷封面公开
2022/03/21 日漫
Tomcat配置访问日志和线程数
2022/05/06 Servers
Java使用HttpClient实现文件下载
2022/08/14 Java/Android