详解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 相关文章推荐
JavaScript修改css样式style
Apr 15 Javascript
鼠标拖拽移动子窗体的JS实现
Feb 25 Javascript
JavaSciprt中处理字符串之sup()方法的使用教程
Jun 08 Javascript
jQuery跨域问题解决方案
Aug 03 Javascript
Bootstrap每天必学之模态框(Modal)插件
Apr 26 Javascript
使用BootStrap建立响应式网页——通栏轮播图(carousel)
Dec 21 Javascript
ionic2自定义cordova插件开发以及使用(Android)
Jun 19 Javascript
Easyui和zTree两种方式分别实现树形下拉框
Aug 04 Javascript
JavaScript使用atan2来绘制箭头和曲线的实例
Sep 14 Javascript
vue.js分页中单击页码更换页面内容的方法(配合spring springmvc)
Feb 10 Javascript
通过封装scroll.js 获取滚动条的值
Jul 13 Javascript
解决Vue.js由于延时显示了{{message}}引用界面的问题
Aug 25 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
摩卡咖啡
2021/03/03 咖啡文化
php 在文件指定行插入数据的代码
2010/05/08 PHP
php 去除html标记--strip_tags与htmlspecialchars的区别详解
2013/06/26 PHP
php求两个目录的相对路径示例(php获取相对路径)
2014/03/27 PHP
解决php extension 加载顺序问题
2019/08/16 PHP
php桥接模式应用案例分析
2019/10/23 PHP
从零开始学习jQuery (四) jQuery中操作元素的属性与样式
2011/02/23 Javascript
jquery 实现返回顶部功能
2014/11/17 Javascript
js控制多图左右滚动切换效果代码分享
2015/08/26 Javascript
理解JavaScript中worker事件api
2015/12/25 Javascript
jQuery鼠标悬浮链接弹出跟随图片实例代码
2016/01/08 Javascript
Javascript OOP之面向对象
2016/07/31 Javascript
JS实现六边形3D拖拽翻转效果的方法
2016/09/11 Javascript
JS解决移动web开发手机输入框弹出的问题
2017/03/31 Javascript
jQuery实现的页面详情展开收起功能示例
2018/06/11 jQuery
js实现左右两侧浮动广告
2018/07/09 Javascript
解决angular2 获取到的数据无法实时更新的问题
2018/08/31 Javascript
vue中获取滚动table的可视页面宽度调整表头与列对齐(每列宽度不都相同)
2019/08/17 Javascript
vue中进行微博分享的实例讲解
2019/10/14 Javascript
解决vue.js提交数组时出现数组下标的问题
2019/11/05 Javascript
微信小程序tabBar设置实例解析
2019/11/14 Javascript
微信小程序实现滚动Tab选项卡
2020/11/16 Javascript
Python深入学习之上下文管理器
2014/08/31 Python
在Python的Django框架中为代码添加注释的方法
2015/07/16 Python
Python中如何优雅的合并两个字典(dict)方法示例
2017/08/09 Python
Python爬虫工程师面试问题总结
2018/03/22 Python
django配置连接数据库及原生sql语句的使用方法
2019/03/03 Python
python科学计算之numpy——ufunc函数用法
2019/11/25 Python
PyQt5 控件字体样式等设置的实现
2020/05/13 Python
Python使用socket模块实现简单tcp通信
2020/08/18 Python
四风存在的原因分析
2014/02/11 职场文书
个性与发展自我评价
2014/02/11 职场文书
2014年小学语文工作总结
2014/12/20 职场文书
亮剑观后感
2015/06/05 职场文书
MySQL 视图(View)原理解析
2021/05/19 MySQL
mysql分组后合并显示一个字段的多条数据方式
2022/01/22 MySQL