详解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 相关文章推荐
JavaScipt基本教程之JavaScript语言的基础
Jan 16 Javascript
jquery下利用jsonp跨域访问实现方法
Jul 29 Javascript
jWiard 基于JQuery的强大的向导控件介绍
Oct 28 Javascript
如何减少浏览器的reflow和repaint
Feb 26 Javascript
jquery控制显示服务器生成的图片流
Aug 04 Javascript
jQuery文本框得到与失去焦点动态改变样式效果
Sep 08 Javascript
JS实现动态增加和删除li标签行的实例代码
Oct 16 Javascript
angularjs 表单密码验证自定义指令实现代码
Oct 27 Javascript
jQuery回调方法使用示例
Jun 26 jQuery
vue-awesome-swiper滑块插件使用方法详解
Nov 27 Javascript
微信小程序点餐系统开发常见问题汇总
Aug 06 Javascript
vue实现简单计算商品价格
Sep 14 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
基于PHP与XML的PDF文档生成技术
2006/10/09 PHP
用PHP函数解决SQL injection
2006/12/09 PHP
PHP统计当前在线用户数实例讲解
2015/10/21 PHP
javascript call和apply方法
2008/11/24 Javascript
JS获取农历日期具体实例
2013/11/14 Javascript
基于jquery的手风琴图片展示效果实现方法
2014/12/16 Javascript
jquery预加载图片的方法
2015/05/27 Javascript
实例代码详解javascript实现窗口抖动及qq窗口抖动
2016/01/04 Javascript
JS清除文本框内容离开在恢复及鼠标离开文本框时触发js的方法
2016/01/12 Javascript
jQuery中text() val()和html()的区别实例详解
2016/06/28 Javascript
实例浅析js的this
2016/12/11 Javascript
浅谈javascript中的数据类型转换
2016/12/27 Javascript
ES6扩展运算符用法实例分析
2017/10/31 Javascript
jquery ajaxfileuplod 上传文件 essyui laoding 效果【防止重复上传文件】
2018/05/26 jQuery
使用weixin-java-tools完成微信授权登录、微信支付的示例
2018/09/26 Javascript
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS OG
2018/03/30 DOTA
Python中的闭包详细介绍和实例
2014/11/21 Python
Python计算程序运行时间的方法
2014/12/13 Python
Python psutil模块简单使用实例
2015/04/28 Python
Django发送html邮件的方法
2015/05/26 Python
Python函数参数操作详解
2018/08/03 Python
python3实现逐字输出的方法
2019/01/23 Python
python线程安全及多进程多线程实现方法详解
2019/09/27 Python
python用opencv完成图像分割并进行目标物的提取
2020/05/25 Python
Python 中的函数装饰器和闭包详解
2021/02/06 Python
纯CSS3实现8组超炫酷鼠标滑过图片动画
2016/03/16 HTML / CSS
Desigual英国官网:在线购买原创服装
2018/03/09 全球购物
iPad和Surface Pro蓝牙键盘:Brydge
2018/11/10 全球购物
Tomcat中怎么使用log4j输出所有的log
2016/07/07 面试题
一套比较完整的软件测试人员面试题
2012/05/13 面试题
毕业生自荐书模版
2014/01/04 职场文书
物控部经理职务说明书
2014/02/25 职场文书
信息员培训方案
2014/06/12 职场文书
高中校园广播稿
2014/10/21 职场文书
《刷子李》教学反思
2016/02/20 职场文书
民事调解协议书
2016/03/21 职场文书