详解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对class属性的操作实现按钮开关效果
Oct 11 Javascript
原生js和jQuery写的网页选项卡特效对比
Apr 27 Javascript
JavaScript笔记之数据属性和存储器属性
Mar 31 Javascript
Javascript6中字符串的四个新用法分享
Sep 11 Javascript
基于JavaScript实现自定义滚动条
Jan 25 Javascript
jQuery插件HighCharts实现2D柱状图、折线图的组合多轴图效果示例【附demo源码下载】
Mar 09 Javascript
微信小程序 本地数据存储实例详解
Apr 13 Javascript
vue实现导航栏效果(选中状态刷新不消失)
Dec 13 Javascript
vue-cli3 项目优化之通过 node 自动生成组件模板 generate View、Component
Apr 30 Javascript
JavaScript内置对象math,global功能与用法实例分析
Jun 10 Javascript
uniapp实现可以左右滑动导航栏
Oct 21 Javascript
express异步函数异常捕获示例详解
Nov 30 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魔术方法以及关于独立实例与相连实例的全面讲解
2016/10/18 PHP
yii2实现 "上一篇,下一篇" 功能的代码实例
2017/02/04 PHP
javascript 动态添加表格行
2006/06/22 Javascript
JavaScript 申明函数的三种方法 每个函数就是一个对象(一)
2009/12/04 Javascript
jquery 最简单易用的表单验证插件
2010/02/27 Javascript
js 多浏览器分别判断代码
2010/04/01 Javascript
Js点击弹出下拉菜单效果实例
2013/08/12 Javascript
jQuery实现精美的多级下拉菜单特效
2015/03/14 Javascript
jQuery实现滚动切换的tab选项卡效果代码
2015/08/26 Javascript
AngularJS基于ui-route实现深层路由的方法【路由嵌套】
2016/12/14 Javascript
利用jQuery实现滑动开关按钮效果(附demo源码下载)
2017/02/07 Javascript
详解Javascript几种跨域方式总结
2017/02/27 Javascript
Vue2组件tree实现无限级树形菜单
2017/03/29 Javascript
浅谈angular.js跨域post解决方案
2017/08/30 Javascript
原生JS实现的简单轮播图功能【适合新手】
2018/08/17 Javascript
微信小程序实现省市区三级地址选择
2020/06/21 Javascript
Vue实现固定定位图标滑动隐藏效果
2019/05/30 Javascript
es6中使用map简化复杂条件判断操作实例详解
2020/02/19 Javascript
python实现的登陆Discuz!论坛通用代码分享
2014/07/11 Python
python语言使用技巧分享
2016/05/31 Python
python常见排序算法基础教程
2017/04/13 Python
python好玩的项目—色情图片识别代码分享
2017/11/07 Python
python Opencv将图片转为字符画
2021/02/19 Python
Python Socket编程之多线程聊天室
2018/07/28 Python
基于Python中isfile函数和isdir函数使用详解
2019/11/29 Python
浅谈sklearn中predict与predict_proba区别
2020/06/28 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
2020/07/05 Python
opencv 图像腐蚀和图像膨胀的实现
2020/07/07 Python
拿来就用!Python批量合并PDF的示例代码
2020/08/10 Python
日本最大级玩偶手办购物:あみあみ Amiami
2018/04/23 全球购物
意大利在线大学图书馆:Libreria universitaria
2019/07/16 全球购物
西部世纪面试题
2014/12/05 面试题
党的群众路线教育实践活动学习心得体会
2014/03/03 职场文书
地球一小时活动总结
2015/02/27 职场文书
圆明园观后感
2015/06/03 职场文书
大学军训通讯稿(2016最新版)
2015/12/21 职场文书