详解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下判断一个元素是否存在的代码
Mar 05 Javascript
js限制textarea每行输入字符串长度的代码
Oct 31 Javascript
jQuery获取和设置表单元素的方法
Feb 14 Javascript
测试IE浏览器对JavaScript的AngularJS的兼容性
Jun 19 Javascript
jQuery mobile 移动web(6)
Dec 20 Javascript
JavaScript设置名字输入不合法的实现方法
May 23 Javascript
vue 之 css module的使用方法
Dec 04 Javascript
js tab栏切换代码实例解析
Sep 03 Javascript
微信小程序tab切换可滑动切换导航栏跟随滚动实现代码
Sep 04 Javascript
js实现点击图片在屏幕中间弹出放大效果
Sep 11 Javascript
Vue项目环境搭建详细总结
Sep 26 Javascript
node.js使用fs读取文件出错的解决方案
Oct 23 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
星际中一些鲜为人知的详细资料
2020/03/04 星际争霸
php 代码优化之经典示例
2011/03/24 PHP
CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析
2016/05/18 PHP
php与c 实现按行读取文件实例代码
2017/01/03 PHP
jQuery EasyUI API 中文文档 - Menu菜单
2011/10/03 Javascript
javaScript arguments 对象使用介绍
2013/10/18 Javascript
JS的get和set使用示例
2014/02/20 Javascript
jQuery中对未来的元素绑定事件用bind、live or on
2014/04/17 Javascript
一个简单的jquery的多选下拉框(自写)
2014/05/05 Javascript
跟我学习javascript的arguments对象
2015/11/16 Javascript
学习JavaScript设计模式之模板方法模式
2016/01/20 Javascript
基于JavaScript实现百叶窗动画效果不只单纯flas可以实现
2016/02/29 Javascript
客户端验证用户名和密码的方法详解
2016/06/16 Javascript
微信小程序 火车票查询实例讲解
2016/10/17 Javascript
js实现小窗口拖拽效果
2016/12/03 Javascript
JavaScript中递归实现的方法及其区别
2017/09/12 Javascript
Thinkjs3新手入门之添加一个新的页面
2017/12/06 Javascript
浅谈AngularJs 双向绑定原理(数据绑定机制)
2017/12/07 Javascript
Vue中使用webpack别名的方法实例详解
2018/06/19 Javascript
微信小程序实现搜索功能并跳转搜索结果页面
2019/05/18 Javascript
VUE+elementui面包屑实现动态路由详解
2019/11/04 Javascript
在vue中实现某一些路由页面隐藏导航栏的功能操作
2020/09/21 Javascript
python中反射用法实例
2015/03/27 Python
python实现人民币大写转换
2018/06/20 Python
python交换两个变量的值方法
2019/01/12 Python
python三引号输出方法
2019/02/27 Python
详解利用Python scipy.signal.filtfilt() 实现信号滤波
2019/06/05 Python
Python 一键获取百度网盘提取码的方法
2019/08/01 Python
Python 导入文件过程图解
2019/10/15 Python
学生喝酒检讨书
2014/02/06 职场文书
公司年会抽奖活动主持词
2014/03/31 职场文书
《雨点儿》教学反思
2014/04/14 职场文书
民主生活会批评与自我批评总结
2014/10/17 职场文书
新教师教学工作总结
2015/08/12 职场文书
PyTorch 实现L2正则化以及Dropout的操作
2021/05/27 Python
如何用Laravel包含你自己的帮助函数
2021/05/27 PHP