系统的学习了一下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. esp8266的STM32驱动

    esp8266的STM32驱动,数据发送接收由DMA完成,释放CPU. 目前只能发送返回消息为成功或失败的AT命令,并判断是否成功,详见esp8266_cmd():其它返回消息不可预知的命令(如查看A ...

  2. ios App 打包

    ios 版本的 App 打包两种方式: 1. 命令行 xcodebuild exportArchive -exportFormat ipa 2. 通过 xcode Product -> Arch ...

  3. 第一好用的时间 日期插件(Adding a Timepicker to jQuery UI Datepicker)

          最近在一个项目中用到了My97DatePicker,国人写的一个挺不错的时间选择插件,简单易用,但是在调试静态时却发现此插件必须产生一个iframe标签指向其主页,试了很多种方法都不能去除 ...

  4. 使用Yeoman搭建 AngularJS 应用 (4) —— 让我们搭建一个网页应用

    在开发一个的网页传统工作流程中,你需要大量的时间去设置引用文件,下载依赖文件,并且手动的创建网页文件结构.Yeoman生成器将会帮助你完成这些.让我们安装一个AngularJS项目的生成器. 安装An ...

  5. [转载]jQuery.lazyload详解 - 图片延时加载

    jQuery实现图片延迟加载,不知道是否可以节省带宽呢?有人知道吗? 这究竟只是一个视觉特效还是真的能延迟加载减少服务器的请求呢? <script type="text/javascr ...

  6. C++函数中那些不可以被声明为虚函数的函数

    转自C++函数中那些不可以被声明为虚函数的函数 常见的不不能声明为虚函数的有:普通函数(非成员函数):静态成员函数:内联成员函数:构造函数:友元函数. 1.为什么C++不支持普通函数为虚函数? 普通函 ...

  7. Unity3d + NGUI 的多分辨率适配(黑边)

    原地址:http://www.2cto.com/kf/201310/250921.html 一.当下移动设备的主流分辨率(数据来自“腾讯分析移动设备屏幕分辨率分析报告”) 1.1 iOS设备的分辨率主 ...

  8. fiddler 插件开发二

    本篇主要讲解Fildder插件开发中的涉及到的主要接口与类. 1.IFiddlerExtension 接口 如果要开发的自定义插件有UI界面,则需要实现IFiddlerExtension 接口.你程序 ...

  9. Notifications Nagios

    Introduction I've had a lot of questions as to exactly how notifications work. This will attempt to ...

  10. C: 数组形参

    知识这个东西,真是知道的越多就不知道的越多,C/C++这塘水得多深啊,哈哈.看下面3个片段:<一> 1 void fun(char a[100]) { 2         fprintf( ...