详解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 相关文章推荐
javascript使用activex控件的代码
Jan 27 Javascript
在页面上用action传递参数到后台出现乱码的解决方法
Dec 31 Javascript
利用js读取动态网站从服务器端返回的数据
Feb 10 Javascript
使用JavaScript实现网页版Pongo设计思路及源代码分享
Jun 16 Javascript
Linux下使用jq友好的打印JSON技巧分享
Nov 18 Javascript
jQuery Ztree行政地区树状展示(点击加载)
Nov 09 Javascript
js闭包用法实例详解
Dec 13 Javascript
详解webpack和webpack-simple中如何引入css文件
Jun 28 Javascript
用Fundebug插件记录网络请求异常的方法
Feb 21 Javascript
详解vue父子组件关于模态框状态的绑定方案
Jun 05 Javascript
详解在IDEA中将Echarts引入web两种方式(使用js文件和maven的依赖导入)
Jul 11 Javascript
解决Antd 里面的select 选择框联动触发的问题
Oct 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
一周学会PHP(视频)Http下载
2006/12/12 PHP
PHP安全上传图片的方法
2015/03/21 PHP
Zend Framework基于Command命令行建立ZF项目的方法
2017/02/18 PHP
php使用curl实现ftp文件下载功能
2017/05/16 PHP
Laravel如何使用Redis共享Session
2018/02/23 PHP
PHP rmdir()函数的用法总结
2019/07/02 PHP
javascript里的条件判断
2007/02/27 Javascript
Locate a File Using a File Open Dialog Box
2007/06/18 Javascript
在Node.js中实现文件复制的方法和实例
2014/06/05 Javascript
JavaScript实现的圆形浮动标签云效果实例
2015/08/06 Javascript
Bootstrap基本组件学习笔记之导航(10)
2016/12/07 Javascript
Express与NodeJs创建服务器的两种方法
2017/02/06 NodeJs
基于vue2实现上拉加载功能
2017/11/28 Javascript
Nuxt.js踩坑总结分享
2018/01/18 Javascript
vue获取当前激活路由的方法
2018/03/17 Javascript
解决Js先触发失去焦点事件再执行点击事件的问题
2018/08/30 Javascript
浅谈目前可以使用ES10的5个新特性
2019/06/25 Javascript
Layui表格行工具事件与数据回填方法
2019/09/13 Javascript
Python映射拆分操作符用法实例
2015/05/19 Python
Python使用reportlab将目录下所有的文本文件打印成pdf的方法
2015/05/20 Python
python删除特定文件的方法
2015/07/30 Python
Python利用turtle库绘制彩虹代码示例
2017/12/20 Python
Python并行分布式框架Celery详解
2018/10/15 Python
爱尔兰领先的在线体育用品零售商:theGAAstore
2018/04/16 全球购物
俄罗斯花园种植材料批发和零售网上商店:Беккер
2019/07/22 全球购物
通信工程专业个人找工作求职信范文
2013/09/21 职场文书
企业内部培训方案
2014/02/04 职场文书
霸王洗发水广告词
2014/03/14 职场文书
学雷锋月活动总结
2014/04/25 职场文书
博士生导师推荐信
2014/07/08 职场文书
离婚协议书范文2015
2015/01/26 职场文书
发票退票证明
2015/06/24 职场文书
2016公司新年问候语
2015/11/11 职场文书
公安忠诚教育心得体会
2016/01/23 职场文书
62句有关感恩节文案(推荐收藏)
2019/11/28 职场文书
交互式可视化js库gojs使用介绍及技巧
2022/02/18 Javascript