详解Angularjs filter过滤器


Posted in Javascript onFebruary 06, 2016

系统的学习了一下angularjs,发现angularjs的有些思想根php的模块smarty很像,例如数据绑定,filter。如果对smarty比较熟悉的话,学习angularjs会比较容易一点。这篇简单说一下angularjs的filter功能,angularjs的filter功能可分为二种,一种是内置的过滤器,一种是自定义的。

Filter是用来格式化数据用的。

Filter的基本原型( '' 类似于Linux中的管道模式):

{{ expression filter }}

Filter可以被链式使用(即连续使用多个filter):

{{ expression filter1 filter2 ... }}

Filter也可以指定多个参数:

{{ expression filter:argument1:argument2:... }}

一,内置的过滤器

1,uppercase,lowercase大小转换

{{ "lower cap string" | uppercase }} //结果:LOWER CAP STRING 
{{ "TANK is GOOD" | lowercase }} //结果:tank is good

|这里的竖线是一种管道功能,如果对linux比较熟悉的话,这块的|根linux的管道功能,基本是一样的

2,json格式化

{{ {foo: "bar", baz: 23} | json }} //结果:{ "foo": "bar", "baz": 23 }

注意:bza没格式前是没有双引号的,格式化后就转换成了json数据了。

3,date格式化

{{ 1304375948024 | date }} //结果:May 3, 2011 
{{ 1304375948024 | date:"MM/dd/yyyy @ h:mma" }} //结果:05/03/2011 @ 6:39AM 
{{ 1304375948024 | date:"yyyy-MM-dd hh:mm:ss" }} //结果:2011-05-03 06:39:08

4,number格式化

{{ 1.234567 | number:1 }} //结果:1.2 
{{ 1234567 | number }} //结果:1,234,567

5,currency货币格式化

{{ 250 | currency }} //结果:$250.00 
{{ 250 | currency:"RMB ¥ " }} //结果:RMB ¥ 250.00

6,filter查找

{{ [{"age": 20,"id": 10,"name": "iphone"}, 
{"age": 12,"id": 11,"name": "sunm xing"}, 
{"age": 44,"id": 12,"name": "test abc"} 
] | filter:'s'}} //查找含有有s的行 
//上例结果:[{"age":12,"id":11,"name":"sunm xing"},{"age":44,"id":12,"name":"test abc"}] 
{{ [{"age": 20,"id": 10,"name": "iphone"}, 
{"age": 12,"id": 11,"name": "sunm xing"}, 
{"age": 44,"id": 12,"name": "test abc"} 
] | filter:{'name':'iphone'} }} //查找name为iphone的行 
//上例结果:[{"age":20,"id":10,"name":"iphone"}]

7,limitTo字符串,对像的截取

{{ "i love tank" | limitTo:6 }} //结果:i love 
{{ "i love tank" | limitTo:-4 }} //结果:tank 
{{ [{"age": 20,"id": 10,"name": "iphone"}, 
{"age": 12,"id": 11,"name": "sunm xing"}, 
{"age": 44,"id": 12,"name": "test abc"} 
] | limitTo:1 }} //结果:[{"age":20,"id":10,"name":"iphone"}]

8,orderBy对像排序

{{ [{"age": 20,"id": 10,"name": "iphone"}, 
{"age": 12,"id": 11,"name": "sunm xing"}, 
{"age": 44,"id": 12,"name": "test abc"} 
] | orderBy:'id':true }} //根id降序排 
{{ [{"age": 20,"id": 10,"name": "iphone"}, 
{"age": 12,"id": 11,"name": "sunm xing"}, 
{"age": 44,"id": 12,"name": "test abc"} 
] | orderBy:'id' }} //根据id升序排

二,自定filter功能

我找了一个基本angularjs的mvc框架,phonecat,自定义filter也是在这基础写的,这个框架挺好用的。

1,filters.js添加一个module

angular.module('tanktest', []).filter('tankreplace', function() { 
return function(input) { 
return input.replace(/tank/, "=====") 
}; 
});

2,app.js中加载这个module

var phonecatApp = angular.module('phonecatApp', [ 
'ngRoute', 
'phonecatControllers', 
'facebookControllers', 
'tanktest' 
]);

3,html中调用

{{ "TANK is GOOD" | lowercase |tankreplace}} //结果:===== is good

注意:| lowercase |tankreplace管道命令可以有多个

以上所述是小编给大家介绍的angularjs filter过滤器相关知识,希望对大家有所帮助,更多有关angularjs filter相关知识敬请关注三水点靠木网站。谢谢!

Javascript 相关文章推荐
JS window.opener返回父页面的应用
Oct 24 Javascript
XENON基于JSON变种
Jul 27 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
Aug 12 Javascript
基于JavaScript操作DOM常用的API小结
Dec 01 Javascript
javascript时间排序算法实现活动秒杀倒计时效果
Jan 28 Javascript
JavaScript数组合并的多种方法
May 22 Javascript
Angularjs实现mvvm式的选项卡示例代码
Sep 08 Javascript
基于JS快速实现导航下拉菜单动画效果附源码下载
Oct 27 Javascript
jQuery自定义元素右键点击事件(实现案例)
Apr 28 jQuery
JavaScript实现为事件句柄绑定监听函数的方法分析
Nov 14 Javascript
深入浅析Vue中mixin和extend的区别和使用场景
Aug 01 Javascript
Javascript的promise,async和await的区别详解
Mar 24 Javascript
Angularjs中如何使用filterFilter函数过滤
Feb 06 #Javascript
浅析Javascript匿名函数与自执行函数
Feb 06 #Javascript
JS通过Cookie判断页面是否为首次打开
Feb 05 #Javascript
JavaScript判断图片是否已经加载完毕的方法汇总
Feb 05 #Javascript
jquery实现的判断倒计时是否结束代码
Feb 05 #Javascript
AngularJs中route的使用方法和配置
Feb 04 #Javascript
JS获取时间的相关函数及时间戳与时间日期之间的转换
Feb 04 #Javascript
You might like
精致的人儿就要挑杯子喝咖啡
2021/03/03 冲泡冲煮
很让人受教的 提高php代码质量36计
2012/09/05 PHP
php版微信公众号接口实现发红包的方法
2016/10/14 PHP
PHP编程一定要改掉的5个不良习惯
2020/09/18 PHP
jquery 打开窗口返回值实现代码
2010/03/04 Javascript
Js-$.extend扩展方法使方法参数更灵活
2013/01/15 Javascript
浅析JS刷新框架中的其他页面 && JS刷新窗口方法汇总
2013/07/08 Javascript
JSONP跨域的原理解析及其实现介绍
2014/03/22 Javascript
JavaScript数据类型之基本类型和引用类型的值
2015/04/01 Javascript
jQuery+css3实现文字跟随鼠标的上下抖动
2015/07/31 Javascript
AngularJS中如何使用$http对MongoLab数据表进行增删改查
2016/01/23 Javascript
JavaScript基本类型值-Number类型
2017/02/24 Javascript
Vue2.x中的父组件传递数据至子组件的方法
2017/05/01 Javascript
解决betterScroll在vue中存在图片时,出现拉不动的问题
2018/09/27 Javascript
ElementUI中el-tree节点的操作的实现
2020/02/27 Javascript
[02:49]DAC2018决赛日TOP5 LGD开启黑暗之门绝杀VP
2018/04/08 DOTA
python 中的列表解析和生成表达式
2011/03/10 Python
python中模块查找的原理与方法详解
2017/08/11 Python
Python图形绘制操作之正弦曲线实现方法分析
2017/12/25 Python
matplotlib绘制动画代码示例
2018/01/02 Python
用Q-learning算法实现自动走迷宫机器人的方法示例
2019/06/03 Python
python字典嵌套字典的情况下找到某个key的value详解
2019/07/10 Python
Python Django简单实现session登录注销过程详解
2019/08/06 Python
python线程的几种创建方式详解
2019/08/29 Python
Django实现auth模块下的登录注册与注销功能
2019/10/10 Python
python实现门限回归方式
2020/02/29 Python
CSS3之transition实现下划线的示例代码
2018/05/30 HTML / CSS
基于IE10/HTML5 开发
2013/04/22 HTML / CSS
文明家庭先进事迹材料
2014/05/14 职场文书
党员批评与自我批评发言材料
2014/10/14 职场文书
党的群众路线教育实践活动个人整改措施
2014/10/27 职场文书
异地恋情人节寄语
2015/02/28 职场文书
2019升学宴主持词范本5篇
2019/10/09 职场文书
青岛市的收音机研制与生产
2022/04/07 无线电
Nginx 安装SSL证书完成HTTPS部署
2022/04/28 Servers
CentOS7设置ssh服务以及端口修改方式
2022/12/24 Servers