AngularJS入门教程之过滤器用法示例
程序员文章站
2022-06-02 10:33:12
本文实例讲述了angularjs过滤器用法。分享给大家供大家参考,具体如下:
在前面几节里我们已经接触过angularjs的表达式,表达式的作用是向视图中输出字面量或$s...
本文实例讲述了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提供的内置过滤器功能很有限,下面介绍如何自定义过滤器。
<!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>
上面是笔者自定义的一个將数字转换成人民币大写汉字的过滤器。
filtermod.filter("tormb",function($log)...
过滤器的定义和控制器类似,我们通过angularjs模块的filter方法来完成,第一个参数为过滤器的名称,第二个参数为过滤器实现部分,它必须返回一个数据处理函数。
var tormb = function(input)...
这一部分为数据处理函数,input为原始输入数据,我们在该函数中对输入数据进行处理,然后return 处理过后的数据即可。
在浏览器中效果:
注意:这个tormb 过滤器只是笔者为了演示自定义过滤器的方法而编写的,还有很多不足的地方,有兴趣的读者可以自行完善。
angularjs源码可点击此处。
希望本文所述对大家angularjs程序设计有所帮助。