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之解决IE下不渲染的bug
Jun 29 Javascript
JS打开图片另存为对话框实现代码
Dec 26 Javascript
js调用AJAX时Get和post的乱码解决方法
Jun 04 Javascript
javascript实现des解密加密全过程
Apr 03 Javascript
jQuery头像裁剪工具jcrop用法实例(附演示与demo源码下载)
Jan 22 Javascript
jquery实现图片列表鼠标移入微动
Dec 01 Javascript
Bootstrap Multiselect 常用组件实现代码
Jul 09 Javascript
React-Router如何进行页面权限管理的方法
Dec 06 Javascript
如何手动实现es5中的bind方法详解
Dec 07 Javascript
小程序实现订单倒计时功能
Apr 23 Javascript
vue npm install 安装某个指定的版本操作
Aug 11 Javascript
axios封装与传参示例详解
Oct 18 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 cli 方式 在crotab中运行解决
2010/02/08 PHP
php实现只保留mysql中最新1000条记录
2015/06/18 PHP
修改Laravel5.3中的路由文件与路径
2016/08/10 PHP
PHP判断用户是否已经登录(跳转到不同页面或者执行不同动作)
2016/09/22 PHP
2007/12/23更新创意无限,简单实用(javascript log)
2007/12/24 Javascript
js中将字符串转换成json的三种方式
2011/01/12 Javascript
javascript操作excel生成报表全攻略
2014/05/04 Javascript
javascript实现图片上传前台页面
2015/08/18 Javascript
window.location.hash知识汇总
2015/11/09 Javascript
AngularJS 作用域详解及示例代码
2016/08/17 Javascript
JSON对象 详解及实例代码
2016/10/18 Javascript
浅谈js对象属性 通过点(.) 和方括号([]) 的不同之处
2016/10/29 Javascript
jQuery实现用户输入自动完成功能
2017/02/13 Javascript
JavaScript使用readAsDataURL读取图像文件
2017/05/10 Javascript
详解AngularJs路由之Ui-router-resolve(预加载)
2017/06/13 Javascript
Vue 2.0学习笔记之使用$refs访问Vue中的DOM
2017/12/19 Javascript
vue项目中api接口管理总结
2018/04/20 Javascript
微信小程序实现漂亮的弹窗效果
2020/05/26 Javascript
node版本管理工具n包使用教程详解
2018/11/09 Javascript
JavaScript解析机制与闭包原理实例详解
2019/03/08 Javascript
开源一个微信小程序仪表盘组件过程解析
2019/07/30 Javascript
小程序Request的另类用法详解
2019/08/09 Javascript
Vue.set 全局操作简单示例
2019/09/19 Javascript
微信小程序全局变量的设置、使用、修改过程解析
2019/09/24 Javascript
使用JS实现动态时钟
2020/03/12 Javascript
Python操作SQLite数据库的方法详解
2017/06/16 Python
基于python元祖与字典与集合的粗浅认识
2017/08/23 Python
python启动应用程序和终止应用程序的方法
2019/06/28 Python
Python从列表推导到zip()函数的5种技巧总结
2019/10/23 Python
python中requests模拟登录的三种方式(携带cookie/session进行请求网站)
2020/11/17 Python
HTML5 本地存储 LocalStorage详解
2016/06/24 HTML / CSS
h5页面唤起app如果没安装就跳转下载(iOS和Android)
2020/06/03 HTML / CSS
世界第一曲奇连锁店:Mrs. Fields Cookies
2017/02/04 全球购物
大学生求职自我评价
2014/01/16 职场文书
大专生求职信
2014/06/29 职场文书
2015年乡镇统计工作总结
2015/04/22 职场文书