详解AngularJS Filter(过滤器)用法


Posted in Javascript onDecember 28, 2015

AngularJS的filter,中文名“过滤器”是用来过滤变量的值,或者格式化输出,得到自己所期望的结果或格式的东东。

Filter简介

Filter是用来格式化数据用的。

Filter的基本原型( ‘|' 类似于Linux中的管道模式):

{{ expression | filter }}

Filter可以被链式使用(即连续使用多个filter):

{{ expression | filter1 | filter2 | ... }}

Filter也可以指定多个参数:

{{ expression | filter:argument1:argument2:... }}

一、在视图模板(View Template)中使用

在表达式中应用Filters (过滤器)

需要遵循格式如下:

{{ expression | filter }} 即 {{ 表达式 | 过滤器 }}

例如:{{ 12 | currency }} 输出为 $12.00

详解AngularJS Filter(过滤器)用法

在输出结果中应用Filters (过滤器)

通俗点讲就是Filter的叠加--前一filter的输出结果作为后一filter的输入数据源.

需要遵循格式如下:

{{ expression | filter1 | filter2 | ... }} 即 表达式(expression)使用filter1过滤后再使用filter2过滤...

详解AngularJS Filter(过滤器)用法

带参数的Filter

Filter后面可以跟一个或多个参数,用来帮助实现特殊要求、需求的filter.

需要遵循格式如下:

{{ expression | filter:argument1:argument2:... }}

示例: {{ 1234 | number:2 }} = 1,234.00

详解AngularJS Filter(过滤器)用法

二、使用 AngluarJS 内置Filter

AngularJS为我们提供了9个内建的过滤器

分别是currency, date, filter, json, limitTo, uppercase, lowercase, number, orderBy。

具体的用法在AngularJS的文档中都有详细说明。下面只说几个常用的。

currency filter(货币过滤器)

currency ? 用来将变量转换成货币表现形式

如:{{ amount | currency}}

详解AngularJS Filter(过滤器)用法

uppercase/lowercase filter(字母大小写filter)

如:

{{ "lower cap string" | uppercase }}
<input ng-model="userInput"> Uppercased: {{ userInput | uppercase }}

详解AngularJS Filter(过滤器)用法

date filter (日期filter)

如:

{{ 1304375948024 | date }}
{{ 1304375948024 | date:"MM/dd/yyyy @ h:mma" }}

详解AngularJS Filter(过滤器)用法

json filter

如:

{{ {foo: "bar", baz: 23} | json }}

详解AngularJS Filter(过滤器)用法

在controllers, services和drictives中使用filter

可以在AngularJS的controller, service或者driective中使用filter, 这时候你需要将依赖的filter名字加入到controller, service或者directive的依赖中去。

在controller中直接使用filter, 这样controller可以根据自身需要而适时调用filter

详解AngularJS Filter(过滤器)用法

三、自定义filter(过滤器)

AngularJS编写自定义过滤器的形式和AngularJS的factory service非常相像,一定记得它返回一个对象或者是一个函数即可,编写的时候,只需要一个带有一个以上参数的函数即可。

格式大致如:

app.filter('filter(过滤器)名称',function(){ 
return function(需要过滤的对象,过滤器参数1,过滤器参数2,...){ 
//...执行业务逻辑代码 
return 处理后的对象; 
}
});

详解AngularJS Filter(过滤器)用法

Javascript 相关文章推荐
js中apply方法的使用详细解析
Nov 04 Javascript
jQuery移除tr无效的解决方法(tr是动态添加)
Sep 22 Javascript
Javascript中call和apply函数的比较和使用实例
Feb 03 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
Oct 17 Javascript
利用jQuery实现CheckBox全选/全不选/反选的简单代码
May 31 Javascript
Node.js中.pfx后缀文件的处理方法
Mar 10 Javascript
AngularJS实现表格的增删改查(仅限前端)
Jul 04 Javascript
基于vue.js中事件修饰符.self的用法(详解)
Feb 23 Javascript
JavaScript实现多张图片放大镜效果示例【不限定图片尺寸,rem单位】
May 14 Javascript
vue实现路由切换改变title功能
May 28 Javascript
原生JS 实现的input输入时表格过滤操作示例
Aug 03 Javascript
JavaScript setInterval()与setTimeout()计时器
Dec 27 Javascript
原生JavaScript实现瀑布流布局
Jun 28 #Javascript
js实现瀑布流的三种方式比较
Jun 28 #Javascript
详解AngularJS中自定义过滤器
Dec 28 #Javascript
js运动应用实例解析
Dec 28 #Javascript
基于JavaScript将表单序列化类型的数据转化成对象的处理(允许对象中包含对象)
Dec 28 #Javascript
浅析JS运动
Dec 28 #Javascript
基于JavaScript实现网页倒计时自动跳转代码
Dec 28 #Javascript
You might like
全国FM电台频率大全 - 16 河南省
2020/03/11 无线电
MySQL授权问题总结
2007/05/06 PHP
在Debian系统下配置LNMP的教程
2015/07/09 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
JavaScript与C# Windows应用程序交互方法
2007/06/29 Javascript
javascript 网页跳转的方法
2008/12/24 Javascript
基于JQuery的访问WebService的代码(可访问Java[Xfire])
2010/11/19 Javascript
点击页面其它地方隐藏该div的两种思路
2013/11/18 Javascript
最新最热最实用的15个jQuery插件汇总
2015/07/05 Javascript
JavaScript使ifram跨域相互访问及与PHP通信的实例
2016/03/03 Javascript
JavaScript学习小结之使用canvas画“哆啦A梦”时钟
2016/07/24 Javascript
基于layer.js实现收货地址弹框选择然后返回相应的地址信息
2017/05/26 Javascript
解决Layui 表单提交数据为空的问题
2018/08/15 Javascript
详解如何用webpack4从零开始构建react开发环境
2019/01/27 Javascript
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
2019/07/04 Javascript
layui+jquery支持IE8的表格分页方法
2019/09/28 jQuery
[01:03]悬念揭晓 11月26日DOTA2完美盛典不见不散
2017/11/23 DOTA
零基础写python爬虫之爬虫的定义及URL构成
2014/11/04 Python
简单介绍Python2.x版本中的cmp()方法的使用
2015/05/20 Python
Python中用字符串调用函数或方法示例代码
2017/08/04 Python
Python面向对象基础入门之设置对象属性
2018/12/11 Python
python装饰器练习题及答案
2019/11/01 Python
Python 模拟生成动态产生验证码图片的方法
2020/02/01 Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
2020/04/24 Python
Python基于mediainfo批量重命名图片文件
2020/12/29 Python
CSS3不透明度实例讲解
2016/04/26 HTML / CSS
写给妈妈的道歉信
2014/01/11 职场文书
研究生考核个人自我鉴定
2014/03/27 职场文书
激励口号大全
2014/06/17 职场文书
服务行业演讲稿
2014/09/02 职场文书
干部四风问题整改措施思想汇报
2014/10/13 职场文书
小学家长意见怎么写
2015/06/03 职场文书
如何使用Maxwell实时同步mysql数据
2021/04/08 MySQL
分析Python list操作为什么会错误
2021/11/17 Python
python对文档中元素删除,替换操作
2022/04/02 Python
Go中使用gjson来操作JSON数据的实现
2022/08/14 Golang