详解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 post方式传递提交的实现代码
May 31 Javascript
javascript中负数算术右移、逻辑右移的奥秘探索
Oct 17 Javascript
$.each遍历对象、数组的属性值并进行处理
Jul 18 Javascript
tuzhu_req.js 实现仿百度图片首页效果
Aug 11 Javascript
JavaScript实现点击按钮切换网页背景色的方法
Oct 17 Javascript
JavaScript多并发问题如何处理
Oct 28 Javascript
教你用javascript实现随机标签云效果_附代码
Mar 16 Javascript
深入解析Javascript闭包的功能及实现方法
Jul 10 Javascript
详解webpack分离css单独打包
Jun 21 Javascript
vue购物车插件编写代码
Nov 27 Javascript
迅速了解一下ES10中Object.fromEntries的用法使用
Mar 05 Javascript
elementui实现预览图片组件二次封装
Dec 29 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 基于文件头的文件类型验证类函数
2012/05/01 PHP
PHP准确取得服务器IP地址的方法
2015/06/02 PHP
Linux下源码包安装Swoole及基本使用操作图文详解
2019/04/02 PHP
Yii框架学习笔记之session与cookie简单操作示例
2019/04/30 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
PHP+Redis事务解决高并发下商品超卖问题(推荐)
2020/08/03 PHP
javascript 拖动表格行实现代码
2011/05/05 Javascript
Extjs TimeField 显示正常时间格式的代码
2011/06/28 Javascript
js比较和逻辑运算符的介绍
2013/03/10 Javascript
jQuery性能优化的38个建议
2014/03/04 Javascript
常用的jQuery前端技巧收集
2014/12/24 Javascript
JS获取iframe中longdesc属性的方法
2015/04/01 Javascript
Bootstrap树形控件使用方法详解
2016/01/27 Javascript
Node.js模块封装及使用方法
2016/03/06 Javascript
jQuery四种选择器使用及示例
2016/06/05 Javascript
js模拟微博发布消息
2017/02/23 Javascript
浅析Javascript中双等号(==)隐性转换机制
2017/10/27 Javascript
vue 中 elment-ui table合并上下两行相同数据单元格
2019/12/26 Javascript
Python脚本实现下载合并SAE日志
2015/02/10 Python
python使用百度文字识别功能方法详解
2019/07/23 Python
Django框架创建mysql连接与使用示例
2019/07/29 Python
详解Python利用random生成一个列表内的随机数
2019/08/21 Python
PyTorch学习:动态图和静态图的例子
2020/01/06 Python
关于jupyter打开之后不能直接跳转到浏览器的解决方式
2020/04/13 Python
使用Keras建立模型并训练等一系列操作方式
2020/07/02 Python
用css3实现转换过渡和动画效果
2020/03/13 HTML / CSS
canvas绘制图片drawImage使用方法
2020/09/15 HTML / CSS
Talbots官网:美国成熟女装品牌
2019/11/15 全球购物
如何执行一个shell程序
2012/11/23 面试题
Unix如何在一行中运行多个命令
2015/05/29 面试题
大学生学习2014年全国两会心得体会
2014/03/12 职场文书
疾病防治方案
2014/05/31 职场文书
大学生就业自荐书
2014/06/16 职场文书
大一新生期末自我评价
2014/09/12 职场文书
2014年教育实习工作总结
2014/11/22 职场文书
mysql查看表结构的三种方法总结
2022/07/07 MySQL