详解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 相关文章推荐
jQuery AJAX回调函数this指向问题
Feb 08 Javascript
jQuery对下拉框,单选框,多选框的操作
Feb 21 Javascript
JavaScript从数组中删除指定值元素的方法
Mar 18 Javascript
jQuery动态添加及删除表单上传元素的方法(附demo源码下载)
Jan 15 Javascript
js css+html实现简单的日历
Jul 14 Javascript
微信小程序 弹框和模态框实现代码
Mar 10 Javascript
基于jQuery.i18n实现web前端的国际化
May 04 jQuery
Vue自定义弹窗指令的实现代码
Aug 13 Javascript
浅谈React之状态(State)
Sep 19 Javascript
详解js 创建对象的几种方法
Mar 08 Javascript
vue总线机制(bus)知识点详解
May 10 Javascript
JS常见错误(Error)及处理方案详解
Jul 02 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
PHP 文件上传进度条的两种实现方法的代码
2007/11/25 PHP
详解使用php调用微信接口上传永久素材
2017/04/11 PHP
Laravel 验证码认证学习记录小结
2019/12/20 PHP
PHP之header函数详解
2021/03/02 PHP
JavaScript中的History历史对象
2008/01/16 Javascript
jQuery 通过事件委派一次绑定多种事件,以减少事件冗余
2010/06/30 Javascript
开发 Internet Explorer 右键功能表(ContextMenu)
2013/07/03 Javascript
Javascript 实现复制(Copy)动作方法大全
2014/06/20 Javascript
Js和JQuery获取鼠标指针坐标的实现代码分享
2015/05/25 Javascript
js正则表达式replace替换变量方法
2016/05/21 Javascript
jQuery表单验证插件解析(推荐)
2016/07/21 Javascript
基于bootstrap实现广告轮播带图片和文字效果
2016/07/22 Javascript
探索Javascript中this的奥秘
2016/12/11 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(2)
2017/02/20 Javascript
前端开发之CSS原理详解
2017/03/11 Javascript
vue.js绑定事件监听器示例【基于v-on事件绑定】
2018/07/07 Javascript
vue代理和跨域问题的解决
2018/07/18 Javascript
vscode中vue-cli项目es-lint的配置方法
2018/07/30 Javascript
基于javascript处理二进制图片流过程详解
2020/06/08 Javascript
纯Python开发的nosql数据库CodernityDB介绍和使用实例
2014/10/23 Python
判断python字典中key是否存在的两种方法
2018/08/10 Python
对python xlrd读取datetime类型数据的方法详解
2018/12/26 Python
python语言元素知识点详解
2019/05/15 Python
python实现坦克大战游戏 附详细注释
2020/03/27 Python
python pygame实现五子棋小游戏
2020/10/26 Python
python网络编程socket实现服务端、客户端操作详解
2020/03/24 Python
法国二手MacBook销售网站:Okamac
2019/03/18 全球购物
洲际酒店集团英国官网:IHG英国
2019/07/10 全球购物
美国轻奢时尚购物网站:REVOLVE(支持中文)
2020/07/18 全球购物
函授自我鉴定范文
2014/02/06 职场文书
《值日生》教学反思
2014/02/17 职场文书
2014年安全生产责任书
2014/07/22 职场文书
小学生暑假安全保证书
2015/07/13 职场文书
IDEA 链接Mysql数据库并执行查询操作的完整代码
2021/05/20 MySQL
golang特有程序结构入门教程
2021/06/02 Python
Python自动化之批量处理工作簿和工作表
2021/06/03 Python