AngularJS入门教程之过滤器用法示例


Posted in Javascript onNovember 02, 2016

本文实例讲述了AngularJS过滤器用法。分享给大家供大家参考,具体如下:

在前面几节里我们已经接触过AngularJS的表达式,表达式的作用是向视图中输出字面量或$scope对象中的属性值。在输出之前我们可以通过过滤器来格式化输出的数据。

过滤器的使用非常简单,我们看一下下面的代码:

<!DOCTYPE html>
<html ng-app>
<head lang="en">
 <meta charset="UTF-8">
 <script type="text/javascript" src="angular-1.3.0.14/angular.js"></script>
 <title>tutorial05_1</title>
</head>
<body>
 <p>{{"HELLO WORLD!"| lowercase}}</p>
 <p>{{"hello world!"| uppercase}}</p>
 <p>{{3.1415926| number:2}}</p>
 <p>{{3011| currency}}</p>
</body>
</html>

两个嵌套的大括号即为AngularJs的表达式,我们通过|字符后跟上过滤器名称来调用该过滤器。lowercase,uppercase,number,currency为AngularJs内置的过滤器。

lowercase用来把文本中的字母转换为小写,uppercase和它相反,number过滤器用来控制数字的格式,currency则把数字转换成金额格式。

我们看一下在浏览器中的效果:

AngularJS入门教程之过滤器用法示例

AngularJs提供的内置过滤器功能很有限,下面介绍如何自定义过滤器。

<!DOCTYPE html>
<html ng-app="filterMod">
<head lang="en">
 <meta charset="UTF-8">
 <script type="text/javascript" src="angular-1.3.0.14/angular.js"></script>
 <title>tutorial05_2</title>
</head>
<body>
 <p>{{11314| toRMB}}</p>
<script>
 var filterMod = angular.module("filterMod",[]);
 filterMod.filter("toRMB",function($log)
 {
  var toRMB = function(input)
  {
   var RMBNum = ['零',"壹","贰","叁","肆","伍","陆","柒","捌","玖","拾","佰","仟","万","亿"];
   var inputStr = input + "";
   var inputArr = new Array();
   for(i=0;i<inputStr.length;i++)
   {
    var temp = parseInt(input % 10);
    inputArr.push(temp);
    switch(i)
    {
     case 0:inputArr.push(10);
      break;
     case 1:inputArr.push(11);
      break;
     case 2:inputArr.push(12);
      break;
     case 3:inputArr.push(13);
      break;
    }
    input = input / 10;
   }
   inputArr = inputArr.reverse();
   var output = "";
   for(i=0;i<inputArr.length;i++)
   {
    output += RMBNum[inputArr[i]];
   }
   return output;
  }
  return toRMB;
 });
</script>
</body>
</html>

上面是笔者自定义的一个?⑹?肿?怀扇嗣癖掖笮春鹤值墓?似鳌?/p>

filterMod.filter("toRMB",function($log)...

过滤器的定义和控制器类似,我们通过AngularJs模块的filter方法来完成,第一个参数为过滤器的名称,第二个参数为过滤器实现部分,它必须返回一个数据处理函数。

var toRMB = function(input)...

这一部分为数据处理函数,input为原始输入数据,我们在该函数中对输入数据进行处理,然后return 处理过后的数据即可。

在浏览器中效果:

AngularJS入门教程之过滤器用法示例

注意:这个toRMB 过滤器只是笔者为了演示自定义过滤器的方法而编写的,还有很多不足的地方,有兴趣的读者可以自行完善。

AngularJS源码可点击此处本站下载

希望本文所述对大家AngularJS程序设计有所帮助。

Javascript 相关文章推荐
用javascript获取当页面上鼠标光标位置和触发事件的对象的代码
Dec 09 Javascript
详解Bootstrap的aria-label和aria-labelledby应用
Jan 04 Javascript
jquery分页插件jquery.pagination.js实现无刷新分页
Apr 01 Javascript
js实现可输入可选择的select下拉框
Dec 21 Javascript
javascript 闭包详解及简单实例应用
Dec 31 Javascript
vue2.0学习之axios的封装与vuex介绍
May 28 Javascript
vue.js实现标签页切换效果
Jun 07 Javascript
详解如何在vue-cli中使用vuex
Aug 07 Javascript
详谈js的变量提升以及使用方法
Oct 06 Javascript
vue-cli 为项目设置别名的方法
Oct 15 Javascript
js+h5 canvas实现图片验证码
Oct 11 Javascript
jQuery class属性操作addClass()与removeClass()、hasClass()、toggleClass()
Mar 31 jQuery
JavaScript基础——使用Canvas绘图
Nov 02 #Javascript
js实现砖头在页面拖拉效果
Nov 20 #Javascript
AngularJS入门教程之模块化操作用法示例
Nov 02 #Javascript
js 打开新页面在屏幕中间的实现方法
Nov 02 #Javascript
jQuery图片切换动画特效
Nov 02 #Javascript
用jQuery的AJax实现异步访问、异步加载
Nov 02 #Javascript
AngularJS入门教程之MVC架构实例分析
Nov 01 #Javascript
You might like
PHP一些常用的正则表达式字符的一些转换
2008/07/29 PHP
PHP函数addslashes和mysql_real_escape_string的区别
2014/04/22 PHP
Laravel框架表单验证详解
2014/09/04 PHP
PHP和Shell实现检查SAMBA与NFS Server是否存在
2015/01/07 PHP
ExtJS Ext.MessageBox.alert()弹出对话框详解
2010/04/02 Javascript
Javascript算符的优先级介绍
2013/03/20 Javascript
JS 跳转页面延迟2种方法
2013/03/29 Javascript
javascript中简单的进制转换代码实例
2013/10/26 Javascript
javascript使用window.open提示“已经计划系统关机”的原因
2014/08/15 Javascript
javascript实现在网页中运行本地程序的方法
2016/02/03 Javascript
Bootstrap学习系列之使用 Bootstrap Typeahead 组件实现百度下拉效果
2016/07/07 Javascript
微信小程序开发(一) 微信登录流程详解
2017/01/11 Javascript
AngularJS入门教程一:路由用法初探
2017/05/27 Javascript
在HTML文档中嵌入JavaScript的四种方法
2018/05/07 Javascript
JS中实现浅拷贝和深拷贝的代码详解
2019/06/05 Javascript
基于Element封装一个表格组件tableList的使用方法
2020/06/29 Javascript
[01:11:08]Winstrike vs NB 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
跟老齐学Python之有容乃大的list(1)
2014/09/14 Python
python中执行shell命令的几个方法小结
2014/09/18 Python
编写Python脚本使得web页面上的代码高亮显示
2015/04/24 Python
Python简单定义与使用字典dict的方法示例
2017/07/25 Python
python爬虫爬取快手视频多线程下载功能
2018/02/28 Python
Python socket实现简单聊天室
2018/04/01 Python
实例讲解Python中整数的最大值输出
2019/03/17 Python
Python queue队列原理与应用案例分析
2019/09/27 Python
Django实现文件上传和下载功能
2019/10/06 Python
好莱坞百老汇御用王牌美妆:Koh Gen Do 江原道
2018/04/03 全球购物
static全局变量与普通的全局变量有什么区别
2014/05/27 面试题
编写一子程序,将一链表倒序,即使链表表尾变表头,表头变表尾
2016/02/10 面试题
建筑装饰学院室内设计专业个人自我评价
2013/12/07 职场文书
网络编辑求职信
2014/04/30 职场文书
本科生自荐信
2014/06/18 职场文书
浅谈如何提高PHP代码质量之单元测试
2021/05/28 PHP
解析MySQL binlog
2021/06/11 MySQL
Go语言实现一个简单的并发聊天室的项目实战
2022/03/18 Golang
clear 万能清除浮动(clearfix:after)
2023/05/21 HTML / CSS