详解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 相关文章推荐
在视频前插入广告
Nov 20 Javascript
理解Javascript_09_Function与Object
Oct 16 Javascript
不依赖Flash和任何JS库实现文本复制与剪切附源码下载
Oct 09 Javascript
jquery判断输入密码两次是否相等
Apr 22 Javascript
很全面的JavaScript常用功能汇总集合
Jan 22 Javascript
JS使用插件cryptojs进行加密解密数据实例
May 11 Javascript
详解win7 cmd执行vue不是内部命令的解决方法
Jul 27 Javascript
VueJs组件之父子通讯的方式
May 06 Javascript
element vue Array数组和Map对象的添加与删除操作
Nov 14 Javascript
vue从一个页面跳转到另一个页面并携带参数的解决方法
Aug 12 Javascript
js实现多个标题吸顶效果
Jan 08 Javascript
Vue——前端生成二维码的示例
Dec 19 Vue.js
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版(5)
2006/10/09 PHP
手把手教你打印出PDF(关于fpdf的简单应用)
2013/06/25 PHP
Jquery uploadify图片上传插件无法上传的解决方法
2013/12/16 Javascript
checkbox全选所涉及到的知识点介绍
2013/12/31 Javascript
jquery的attr方法禁用表单元素禁用输入内容
2014/06/23 Javascript
jQuery插件slick实现响应式移动端幻灯片图片切换特效
2015/04/12 Javascript
Jquery基础之事件操作详解
2016/06/14 Javascript
javascript js 操作数组 增删改查的简单实现
2016/06/20 Javascript
微信小程序 聊天室简单实现
2017/04/19 Javascript
基于react组件之间的参数传递(详解)
2017/09/05 Javascript
vue的全局提示框组件实例代码
2018/02/26 Javascript
Vue项目服务器部署之子目录部署方法
2019/05/12 Javascript
详解微信UnionID作用
2019/05/15 Javascript
vue-cli3.X快速创建项目的方法步骤
2019/11/14 Javascript
vue结合el-upload实现腾讯云视频上传功能
2020/07/01 Javascript
Tensorflow实现AlexNet卷积神经网络及运算时间评测
2018/05/24 Python
wxPython色环电阻计算器
2019/11/18 Python
python构造IP报文实例
2020/05/05 Python
python 决策树算法的实现
2020/10/09 Python
如何编写python的daemon程序
2021/01/07 Python
Smallable英国家庭概念店:设计师童装及家居装饰
2017/07/05 全球购物
英国工作场所设备购买网站:Slingsby
2019/05/03 全球购物
Furla官网:意大利著名的皮革品牌
2019/08/06 全球购物
德国大型箱包和皮具商店:Koffer
2019/10/01 全球购物
高级3D打印市场:Gambody
2019/12/26 全球购物
怎样让char类型的东西转换成int类型
2013/12/09 面试题
一个SQL面试题
2014/08/21 面试题
介绍一下gcc特性
2015/10/31 面试题
怎样写留学自荐信
2013/11/11 职场文书
回门宴父母答谢词
2014/01/26 职场文书
大学生的创业计划书就该这么写
2014/01/30 职场文书
学生党员一帮一活动总结
2014/07/08 职场文书
个人股份转让协议书范本
2015/01/28 职场文书
个人维稳承诺书
2015/05/04 职场文书
就业指导讲座心得体会
2016/01/15 职场文书
Python 一键获取电脑浏览器的账号密码
2022/05/11 Python