详解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 相关文章推荐
静态的动态续篇之来点XML
Aug 15 Javascript
json跟xml的对比分析
Jun 10 Javascript
点击下载链接 弹出页面实现代码
Oct 01 Javascript
Javascript验证Visa和MasterCard信用卡号的方法
Jul 27 Javascript
网页中JS函数自动执行常用三种方法
Mar 30 Javascript
H5+C3+JS实现双人对战五子棋游戏(UI篇)
May 28 Javascript
在Create React App中启用Sass和Less的方法示例
Jan 16 Javascript
jQuery实现的隔行变色功能【案例】
Feb 18 jQuery
node中实现删除目录的几种方法
Jun 24 Javascript
微信JSSDK实现打开摄像头拍照再将相片保存到服务器
Nov 15 Javascript
vue $mount 和 el的区别说明
Sep 11 Javascript
全面解析js中的原型,原型对象,原型链
Jan 25 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 ? EasyUI DataGrid 资料取的方式介绍
2012/11/07 PHP
PHP实现二维数组按某列进行排序的方法
2016/11/18 PHP
thinkPHP5.0框架自动加载机制分析
2017/03/18 PHP
PHP实现的装箱算法示例
2018/06/23 PHP
Ajax请求PHP后台接口返回信息的实例代码
2018/08/21 PHP
PHP使用pdo实现事务处理操作示例
2018/09/05 PHP
PHP生成随机码的思路与方法实例探索
2019/04/11 PHP
php多进程并发编程防止出现僵尸进程的方法分析
2020/02/28 PHP
JavaScipt基本教程之JavaScript语言的基础
2008/01/16 Javascript
JavaScript 学习笔记(五)
2009/12/31 Javascript
JavaScript 设计模式 安全沙箱模式
2010/09/24 Javascript
jquery each()源代码
2011/02/14 Javascript
表头固定(利用jquery实现原理介绍)
2012/11/08 Javascript
引用 js在IE与FF之间的区别详细解析
2013/11/20 Javascript
JS基于构造函数实现的菜单滑动显隐效果【测试可用】
2016/06/21 Javascript
html+js+highcharts绘制圆饼图表的简单实例
2016/08/04 Javascript
JavaScript实现广告弹窗效果
2016/08/09 Javascript
AngularJS中的按需加载ocLazyLoad示例
2017/01/11 Javascript
基于JS实现仿百度百家主页的轮播图效果
2017/03/06 Javascript
Angularjs实现上传图片预览功能
2017/09/01 Javascript
jQuery实现的自定义轮播图功能详解
2018/12/28 jQuery
对layui中的onevent 和event的使用详解
2019/09/06 Javascript
JavaScript事件冒泡机制原理实例解析
2020/01/14 Javascript
vue vantUI tab切换时 list组件不触发load事件的问题及解决方法
2020/02/14 Javascript
[59:00]OG vs TNC 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
详解Swift中属性的声明与作用
2016/06/30 Python
使用Python检测文章抄袭及去重算法原理解析
2019/06/14 Python
Python grequests模块使用场景及代码实例
2020/08/10 Python
从零开始的TensorFlow+VScode开发环境搭建的步骤(图文)
2020/08/31 Python
Python创建文件夹与文件的快捷方法
2020/12/08 Python
教学评估实施方案
2014/03/16 职场文书
党员民主生活会个人整改措施材料
2014/09/16 职场文书
学生无故旷课检讨书
2014/09/20 职场文书
领导班子四风对照检查材料范文
2014/09/27 职场文书
2016孝老爱亲模范事迹材料
2016/02/26 职场文书
Python Socket编程详解
2021/04/25 Python