详解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 相关文章推荐
Jquery异步提交表单代码分享
Mar 26 Javascript
JavaScript实现简单获取当前网页网址的方法
Nov 09 Javascript
JavaScript 基础函数_深入剖析变量和作用域
May 18 Javascript
jQuery实现邮箱下拉列表自动补全功能
Sep 08 Javascript
bootstrap table分页模板和获取表中的ID方法
Jan 10 Javascript
JQuery 获取Dom元素的实例讲解
Jul 08 jQuery
React根据宽度自适应高度的示例代码
Oct 11 Javascript
浅谈es6中export和export default的作用及区别
Feb 07 Javascript
微信小程序之圆形进度条实现思路
Feb 22 Javascript
vue设置动态请求地址的例子
Nov 01 Javascript
Vue实现点击当前元素以外的地方隐藏当前元素(实现思路)
Dec 04 Javascript
js实现随机点名
Jan 19 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 应用程序的安全 -- 不能违反的四条安全规则
2006/11/26 PHP
使用PHP遍历文件夹与子目录的函数代码
2011/09/26 PHP
PHP+shell脚本操作Memcached和Apache Status的实例分享
2016/03/11 PHP
php语言的7种基本的排序方法
2020/12/28 PHP
web页面数据展示新想法(json)
2010/06/08 Javascript
jquery判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截取)
2010/10/15 Javascript
jquery为页面增加快捷键示例
2014/01/31 Javascript
JavaScript常用脚本汇总(三)
2015/03/04 Javascript
javascript+HTML5的canvas实现七夕情人节3D玫瑰花效果代码
2015/08/04 Javascript
使用BootStrap实现用户登录界面UI
2016/08/10 Javascript
JS实现按钮控制计时开始和停止功能
2017/07/27 Javascript
基于vue2.0实现简单轮播图
2017/11/27 Javascript
vue 通过下拉框组件学习vue中的父子通讯
2017/12/19 Javascript
如何将你的AngularJS1.x应用迁移至React的方法
2018/02/01 Javascript
微信小程序自定义组件实现tabs选项卡功能
2018/07/14 Javascript
前端axios下载excel文件(二进制)的处理方法
2018/07/31 Javascript
element-ui tree结构实现增删改自定义功能代码
2020/08/31 Javascript
如何在vue中使用video.js播放m3u8格式的视频
2021/02/01 Vue.js
合并Excel工作薄中成绩表的VBA代码,非常适合教育一线的朋友
2009/04/09 Python
python client使用http post 到server端的代码
2013/02/10 Python
python中字符串变二维数组的实例讲解
2018/04/03 Python
Python3.6通过自带的urllib通过get或post方法请求url的实例
2018/05/10 Python
Python 新建文件夹与复制文件夹内所有内容的方法
2018/10/27 Python
python中使用 xlwt 操作excel的常见方法与问题
2019/01/13 Python
关于sys.stdout和print的区别详解
2019/12/05 Python
Pandas之read_csv()读取文件跳过报错行的解决
2020/04/21 Python
自我评价怎么写好呢?
2013/12/05 职场文书
创建服务型党组织实施方案
2014/02/25 职场文书
黄金搭档广告词
2014/03/21 职场文书
2014年综治宣传月活动总结
2014/04/28 职场文书
幼儿园保育员责任书
2014/07/22 职场文书
超市店庆活动方案
2014/08/31 职场文书
2015年教师党员自我评价材料
2015/03/04 职场文书
2015年女职工工作总结
2015/05/15 职场文书
应届生们该怎么书写求职信?
2019/07/05 职场文书
详解Python自动化之文件自动化处理
2021/06/21 Python