简话Angular 04 Angular过滤器详解

一句话: filter是万能的数据处理器,可以过滤数据,排序数据,删除数据,扩展数据

1. 内置filter大全

url: https://docs.angularjs.org/api/ng/filter

uppercase lowercase 转换为大小写
date 转换为各种日期格式
number 将数字格式化成文本。 它的第二个参数是可选的, 用来控制小数点后截取的位数
currency 转换为货币形式
json 转换json或javascript对象成字符串
filter 过滤数据,可以是字符串,对象,函数
limitTo 生成新的部分字符串或数组,可以正序倒序截取
orderBy 排序,按函数,字符串或数组
编程式使用filter  
自定义filter

2. 实例

  1 <div ng-controller="ExampleController">
  2         <span  ng-init="global.fNumber=‘1234567890‘"></span>
  3         <span  ng-init="global.fString=‘Hello filter from Michael Qin‘"></span>
  4         <span  ng-init="global.fArray=[‘Dog‘, ‘gOat‘, ‘cat‘]"></span>
  5         <span  ng-init="global.fObjArray=[{name: ‘dog‘, age: 10}, {name: ‘Goat‘, age: 20}, {name: ‘cat‘, age: 30}]"></span>
  6
  7         <script>
  8         var  myApp = angular.module(‘myApp‘, []);
  9         myApp.controller(‘ExampleController‘, function($scope) {
 10             $scope.global = {};
 11             $scope.global.fDate = new Date();
 12
 13             $scope.isCapitalized = function(str) {
 14                 return str[0] == str[0].toUpperCase();
 15             };
 16
 17         });
 18         </script>
 19
 20         <hr>
 21         <div>
 22             <label>uppercase lowercase实例</label><p></p>
 23             <strong>uppercase:</strong> <span>{{global.fString | uppercase}}</span> {{global.fString}}<br>
 24             <strong>lowercase:</strong> <span>{{global.fString | lowercase}}</span> <br>
 25         </div>
 26
 27
 28         <hr>
 29         <div>
 30             <label>date实例</label><p></p>
 31             {{global.fDate | date: ‘medium‘}} <br>
 32             {{global.fDate | date: ‘short‘}} <br>
 33             {{global.fDate | date: ‘fullDate‘}} <br>
 34             {{global.fDate | date: ‘longDate‘}} <br>
 35             {{global.fDate | date: ‘mediumDate‘}} <br>
 36             {{global.fDate | date: ‘shortDate‘}} <br>
 37             {{global.fDate | date: ‘mediumTime‘}} <br>
 38             {{global.fDate | date: ‘shortTime‘}} <br>
 39             {{global.fDate | date: ‘yyyy‘}} <br>
 40             {{global.fDate | date: ‘yy‘}} <br>
 41             {{global.fDate | date: ‘y‘}} <br>
 42             {{global.fDate | date: ‘MMMM‘}} <br>
 43             {{global.fDate | date: ‘MMM‘}} <br>
 44             {{global.fDate | date: ‘MM‘}} <br>
 45             {{global.fDate | date: ‘M‘}} <br>
 46             {{global.fDate | date: ‘dd‘}} <br>
 47             {{global.fDate | date: ‘d‘}} <br>
 48             {{global.fDate | date: ‘EEEE‘}} <br>
 49             {{global.fDate | date: ‘hh:mm:ss.sss‘}} <br>
 50             {{global.fDate | date: ‘yyyy-MM-dd hh:mm:ss‘}} <br>
 51             {{global.fDate | date: ‘yyyy/MM/dd hh:mm:ss‘}} <br>
 52             {{global.fDate | date: ‘MM/dd/yyyy hh:mm:ss‘}} <br>
 53         </div>
 54
 55         <hr>
 56         <div>
 57             <label>number实例</label><p></p>
 58             {{global.fNumber}} <br>
 59             {{global.fNumber | number}} <br>
 60             {{global.fNumber | number: 2}} <br>
 61             {{global.fNumber | number: 5}} <br>
 62         </div>
 63
 64         <hr>
 65         <div>
 66             <label>currency实例</label><p></p>
 67             {{global.fNumber | currency}} <br>
 68             {{global.fNumber | currency: "€"}} <br>
 69             {{global.fNumber | currency: "£"}} <br>
 70             {{global.fNumber | currency: "CNY"}} <br>
 71             {{global.fNumber | currency: "¥"}} <br>
 72             {{global.fNumber | currency: "元"}} <br>
 73             {{global.fNumber | currency: "圓"}} <br>
 74         </div>
 75
 76         <hr>
 77         <div>
 78             <label>json实例</label><p></p>
 79             {{global.fObjArray | json}} <br>
 80         </div>
 81
 82         <hr>
 83         <div>
 84             <label>filter实例</label><p></p>
 85             {{global.fArray | filter: ‘o‘ }} <br>
 86             {{global.fArray | filter: isCapitalized }} <br>
 87             {{global.fObjArray | filter:{name: ‘dog‘} }} <br>
 88         </div>
 89
 90         <hr>
 91         <div>
 92             <label>limitTo实例</label><p></p>
 93             {{global.fString | limitTo: 3 }} <br>
 94             {{global.fArray | limitTo: 2 }} <br>
 95             {{global.fObjArray | limitTo: -2 }} <br>
 96         </div>
 97
 98         <hr>
 99         <div>
100             <label>orderBy实例</label><p></p>
101             {{global.fObjArray | orderBy: ‘age‘ }} <br>
102             {{global.fObjArray | orderBy: ‘age‘: true }} <br>
103             {{global.fObjArray | orderBy: ‘-age‘}} <br>
104             {{global.fObjArray | orderBy: ‘age‘: false }} <br>
105             {{global.fObjArray | orderBy: ‘+age‘}} <br>
106         </div>
107
108         <hr>
109         <div>
110             <label>编程式使用filter实例</label><p></p>
111             <xmp>
112 $filter(‘filter‘)(array, expression, comparator)
113 $filter(‘currency‘)(amount, symbol, fractionSize)
114 $filter(‘number‘)(number, fractionSize)
115 $filter(‘date‘)(date, format, timezone)
116 $filter(‘json‘)(object, spacing)
117 $filter(‘lowercase‘)()
118 $filter(‘uppercase‘)()
119 $filter(‘limitTo‘)(input, limit, begin)
120 $filter(‘orderBy‘)(array, expression, reverse)
121             </xmp>
122         </div>
123
124         <hr>
125         <div>
126             <label>自定义filter实例</label><p></p>
127             <script>
128                 myApp.filter(‘age20‘, function() {
129                     return function(input) {
130                         for(var i = 0; i < input.length; i++) {
131                             if (input[i].age == 20) {
132                                 return input[i];
133                             }
134                         }
135                     };
136                 });
137             </script>
138             {{global.fObjArray | age20 }} <br>
139         </div>
140
141     <hr>
142     <hr>
143     </div>

3. 查看运行结果及基部源码

http://jimuyouyou.github.io/angular-bootstrap-rest-seed/examples/angular/4-filters.html

4. github项目地址

https://github.com/jimuyouyou/angular-bootstrap-rest-seed

时间: 2024-10-13 19:38:17

简话Angular 04 Angular过滤器详解的相关文章

HTML5移动开发之路(35)——jQuery中的过滤器详解

本文为 兄弟连IT教育 机构官方 HTML5培训 教程,主要介绍:HTML5移动开发之路(35)--jQuery中的过滤器详解 1.基本过滤选择器 :first:last:not(selector) :selector匹配的节点之外的节点:even :偶数:odd :奇数:eq(index):gt(index) :比他大的 :lt(index) :比他小的 [html] view plain copy print? <html> <head> <script src=&quo

【C++基础 04】vector详解

按照写博客的习惯一开始总要加点鸡汤文什么的,请原谅我今天想不起来. ============================================= 今天要写的内容是顺序型容器.首先,标准库定义了三种顺序容器类型:vector,list和deque(双端队列),这篇博客介绍的是vector容器. 首先要知道,vector不是一种数据类型,而是一个类模板,可以用来定义任意多种数据类型,比如说vector<int>是一种数据类型,vector<string>也是一种数据类型.

过滤器详解

过滤器详解 注:继承接口的过滤器需要先继承 FilterAttribute类才行 过滤器头部      [AttributeUsage(AttributeTargets.Method, AllowMultiple = true,Inherited=true)] (1)validOn使用按位"或"运算符组合的一组值,用于指示哪些程序元素是有效的.可以是:程序集.字段.事件.方法.模块.参数.属性.返回值.类型. (2)AllowMultiple 附加属性,它表示是否允许将定制特性的实例多

angular-ngSanitize模块-linky过滤器详解

本篇主要讲解angular中的linky这个过滤器.此过滤器依赖于ngSanitize模块. linky能找出文本中的链接,然后把它转换成html链接.什么意思,就是说,一段文本里有一个链接,但是这个链接没有被a标签嵌套,linky能把它找出来,然后给它加上a标签并且给a链接添加正确的href属性,还可以设置打开的方式(_blank,_self,等...). 它查找链接是根据这些关键词来的: http/https/ftp/mailto/,或者就直接是一个email地址. 下面来看栗子: html

angular的自定义指令---详解

1.angualr指令 在angualr自己里面有许多丰富的指令,但都是平时所常见的,但对于自己所需要的可能有所欠缺,所以自己可能会摒弃原声指令,自己封装更为健壮灵活的指令: 其实angular里面的指令也是基于下面所用到的步骤来创建的,只不过他都添加到了全局中,所以可以直接使用: 2.创建自定义指令 首先创建模块app,再使用app的服务directive方法, 创建指令内容第一个参数自定义的名字,第二个参数是自定义参数属性对象,该对象包括的属性基本在代码注释解释清楚: // a.创建模块 v

angular之$watch方法详解

在$apply方法中提到过脏检查,首先apply方法会触发evel方法,当evel方法解析成功后,会去触发digest方法,digest方法会触发watch方法. (1)$watch简介 在digest执行时,如果watch观察的的value与上一次执行时不一样时,就会被触发. AngularJS内部的watch实现了页面随model的及时更新. $watch方法在用的时候主要是手动的监听一个对象,但对象发生变化时触发某个事件. (2)watch方法用法 $watch(watchFn,watch

angular 自定义指令参数详解

restrict:指令在dom中的声明形式 E(元素)A(属性)C(类名)M(注释) priority优先级:一个元素上存在两个指令,来决定那个指令被优先执行 terminal:true或false,告诉angular是否停止执行比高优先级指令低的指令 template:两种形式,一种HTML文本:一个可以接受两个参数的函数,tElemetn和tAttrs,并返回一个代表模板的字符串.模板字符串必须存在一个根DOM元素 templateUrl:两种形式,一种代表外部HTML文件路径的字符串:一个

angular五种服务详解

在这之前angular学习笔记(十五)-module里的'服务'这篇文章里,已经大致讲解了ng中的'服务',在之后的很多地方也用到了服务,但是,所有的服务都是使用app.factory来创建的.但其实,创建服务有5种方法,这篇文章就来具体讲解ng中的五种服务类型. 首先,为了举栗子,先写好如下的模型,控制器,html: html: <!DOCTYPE html> <html ng-app="serviceApp"> <head> <title&

Angular JS 中 指令详解

Angular JS的强大功能就在于其可以自定义很多指令,现在就指令做一下详细的剖析. 一个Angular js 指令(directive)的生命周期 开始于$compile方法 结束于$link方法. angular.module('myApp', []) .directive('myDirective', function() { return { restrict: String, priority: Number, terminal: Boolean, template: String