系统的学习了一下angularjs,发现angularjs的有些思想根php的模块smarty很像,例如数据绑定,filter。如果对smarty比较熟悉的话,学习angularjs会比较容易一点。这篇简单说一下angularjs的filter功能,angularjs的filter功能可分为二种,一种是内置的过滤器,一种是自定义的。

一,内置的过滤器

1,uppercase,lowercase大小转换

  1. {{ "lower cap string" | uppercase }}     //结果:LOWER CAP STRING
  2. {{ "TANK is GOOD" | lowercase }}         //结果:tank is good

|这里的竖线是一种管道功能,如果对linux比较熟悉的话,这块的|根linux的管道功能,基本是一样的

2,json格式化

  1. {{ {foo: "bar", baz: 23} | json }}    //结果:{ "foo": "bar", "baz": 23 }

注意:bza没格式前是没有双引号的,格式化后就转换成了json数据了。

3,date格式化

  1. {{ 1304375948024 | date }}                          //结果:May 3, 2011
  2. {{ 1304375948024 | date:"MM/dd/yyyy @ h:mma" }}     //结果:05/03/2011 @ 6:39AM
  3. {{ 1304375948024 | date:"yyyy-MM-dd hh:mm:ss" }}    //结果:2011-05-03 06:39:08

4,number格式化

  1. {{ 1.234567 | number:1 }}    //结果:1.2
  2. {{ 1234567 | number }}       //结果:1,234,567

5,currency货币格式化

  1. {{ 250 | currency }}                 //结果:$250.00
  2. {{ 250 | currency:"RMB ¥ " }}       //结果:RMB ¥ 250.00

6,filter查找

  1. {{ [{"age": 20,"id": 10,"name": "iphone"},
  2. {"age": 12,"id": 11,"name": "sunm xing"},
  3. {"age": 44,"id": 12,"name": "test abc"}
  4. ] | filter:'s'}}    //查找含有有s的行
  5. //上例结果:[{"age":12,"id":11,"name":"sunm xing"},{"age":44,"id":12,"name":"test abc"}]
  6. {{ [{"age": 20,"id": 10,"name": "iphone"},
  7. {"age": 12,"id": 11,"name": "sunm xing"},
  8. {"age": 44,"id": 12,"name": "test abc"}
  9. ] | filter:{'name':'iphone'} }}   //查找name为iphone的行
  10. //上例结果:[{"age":20,"id":10,"name":"iphone"}]

7,limitTo字符串,对像的截取

  1. {{ "i love tank" | limitTo:6 }}           //结果:i love
  2. {{ "i love tank" | limitTo:-4 }}          //结果:tank
  3. {{ [{"age": 20,"id": 10,"name": "iphone"},
  4. {"age": 12,"id": 11,"name": "sunm xing"},
  5. {"age": 44,"id": 12,"name": "test abc"}
  6. ] | limitTo:1 }}     //结果:[{"age":20,"id":10,"name":"iphone"}]

8,orderBy对像排序

  1. {{ [{"age": 20,"id": 10,"name": "iphone"},
  2. {"age": 12,"id": 11,"name": "sunm xing"},
  3. {"age": 44,"id": 12,"name": "test abc"}
  4. ] | orderBy:'id':true }}        //根id降序排
  5. {{ [{"age": 20,"id": 10,"name": "iphone"},
  6. {"age": 12,"id": 11,"name": "sunm xing"},
  7. {"age": 44,"id": 12,"name": "test abc"}
  8. ] | orderBy:'id' }}           //根据id升序排

二,自定filter功能

我找了一个基本angularjs的mvc框架,phonecat,自定义filter也是在这基础写的,这个框架挺好用的。

1,filters.js添加一个module

  1. angular.module('tanktest', []).filter('tankreplace', function() {
  2. return function(input) {
  3. return input.replace(/tank/, "=====")
  4. };
  5. });

2,app.js中加载这个module

  1. var phonecatApp = angular.module('phonecatApp', [
  2. 'ngRoute',
  3. 'phonecatControllers',
  4. 'facebookControllers',
  5. 'tanktest'
  6. ]);

3,html中调用

  1. {{ "TANK is GOOD" | lowercase |tankreplace}}   //结果:===== is good

注意:| lowercase |tankreplace管道命令可以有多个

from : http://blog.51yip.com/jsjquery/1592.html

angularjs filter 详解的更多相关文章

  1. angularjs filter详解

    过滤器(filter)正如其名,作用就是接收一个输入,通过某个规则进行处理,然后返回处理后的结果. 主要用在数据的格式化上,例如获取一个数组中的子集,对数组中的元素进行排序等. ng内置了一些过滤器, ...

  2. css filter详解

    css filter详解 filter 属性详解 属性 名称 类型 说明 grayscale 灰度 值为数值 取值范围从0到1的小数(包括0和1) sepia 褐色 值为数值 取值范围从0到1的小数( ...

  3. Spring Security Filter详解

    Spring Security Filter详解 汇总 Filter 作用 DelegatingFilterProxy Spring Security基于这个Filter建立拦截机制 Abstract ...

  4. java web之Filter详解

    java web之Filter详解 2012-10-20 0 个评论 作者:chenshufei2 收藏 我要投稿 .概念: Filter也称之为过滤器,它是Servlet技术中比较激动人心的技术,W ...

  5. Zuul之Filter详解

    Zuul详解 官方文档:https://github.com/Netflix/zuul/wiki/How-it-Works Zuul的中心是一系列过滤器,能够在HTTP请求和响应的路由过程中执行一系列 ...

  6. AngularJS Providers 详解

    供应者(Providers) Each web application you build is composed of objects that collaborate to get stuff d ...

  7. AngularJs MVC 详解

    为什么在前端也需要MVC 1.代码规模越来越大,切分职责是大势所趋 2.为了复用 3.为了后期维护方便 MVC的目的是为了模块化和复用 前端实现MVC的困难 1.操作DOM必须等整个页面加载完 2.多 ...

  8. angularjs 指令详解 - template, restrict, replace

    通过指令机制,angularjs 提供了一个强大的扩展系统,我们可以通过自定义指令来扩展自己的指令系统. 怎样定义自己的指令呢? 我们通过 Bootstrap UI来学习吧.这个项目使用 angula ...

  9. Servlet之Filter详解

    参考文献:http://www.cnblogs.com/zlbx/p/4888312.html Filter,过滤器,顾名思义,即是对数据等的过滤,预处理过程.为什么要引入过滤器呢?在平常访问网站的时 ...

随机推荐

  1. 【git】学习路径失败了

    期初规划:搭建git远程服务器  使用gitlab作为管理工具 过程遇到的问题 1.gitlab不能安装到win ,且对centos要求6以上,我只有一台centos5  让运维帮升级 ...等待.. ...

  2. C# send mail with outlook and word mailmerge

    http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.document_members(v=office.15). ...

  3. Sharepoint delegate control

    <?xml version="1.0" encoding="utf-8"?> <Elements xmlns="http://sch ...

  4. shell 实现word count

    awk '{arr[$2]+=$1}END{for (i in arr) print i,arr[i]}' sort_all.txt | sort -k2nr -g

  5. swift基础--数组、字典

    (1)初始化 (2)新增.修改.删除 (3)清空 (4)遍历 var array1 = ["x","y","z"] var array2:[ ...

  6. Nhibernate 一对一关系映射(主键映射)

    参考:点击这里 妈的,搞了一天了,终于可以了,现在总结下,以防下次再出现这样痛苦的问题了,有两个表:user(用户)和Blog(设置表),它们之间的关系正如我所说的是一对一的关系.现在我们来映射这两个 ...

  7. mybatis foreach标签

    一.批量插入数据 示例:添加订单商品表 1.模型层的相应代码 /** * 添加订单商品表 * @param ordergoods * @return */ public boolean addOrde ...

  8. 你不需要jQuery(四)

    jQuery是个好东西.它诞生于IE6在互联网称霸的那个时代.jQuery的存在让我们的代码能很好的兼容各种平台. 然而,到如今,浏览器技术已经取得了巨大的进步.我们可以自由的使用所有最新众多ES5/ ...

  9. [转载]mvc使用JsonResult返回Json数据

    controller 中定义以下方法: public JsonResult UpdateSingle(int id, string actionName, string actionValue) { ...

  10. 【转】Spring+Hibernate+EHcache配置(一)

    大量数据流动是web应用性能问题常见的原因,而缓存被广泛的用于优化数据库应用.cache被设计为通过保存从数据库里load的数据来减少应用和数据库之间的数据流动.数据库访问只有当检索的数据不在cach ...