AngularJs filter 过滤器基础【转】
Filter
Ng里的过滤器。
currency:把一个数字格式化成货币模式(如$1,234.56)。当没有提供任何货币符号时,默认使用当前区域的符号。
使用:
HTML:{{ currency_expression | currency:symbol:fractionSize}}
JS:$filter(“currency”)(amount,symbol,fractionSize);
amount:数值,过滤的值。
symbol:字符串,要显示的货币符号或标识符。
fractionSize:数值,整数的小数位数,默认为当前的最大位数。
date:基于需要的格式将时间格式化成字符串。
使用:
HTML:{{date_expression | date:format:timezone}}
JS:$filter(“date”)(date,format,timezone);
date:格式化为日期的日期对象。如果没有指定输入的时区字符串,时间则是当地时间。
format:格式规则/格式。
timezone:时区。
filter:从数组中选出一个子集,并将其作为一个新数组返回。
使用:
HTML:{{filter_expression | filter:expression:comparator}}
JS:$filter(“filter”)(array,expression,comparator);
array:被过滤的数组。
expression:字符串/对象/函数,用于从数组中选择数据的判断表达式。使用$可以匹配任何字段。
comparator:函数/Boolean/undefined,用于确定预期的值(从filter表达式返回)和实际的值(数组中的对象)进行比较,应视为匹配。function(actual,expected);
json:允许将一个javascript对象转换为json字符串。
使用:
HTML:{{json_expression | json:spacing}}
JS:$filter(“json”)(object,spacing);
object:过滤的对象。
spacing:每个缩进的空格数,默认为2。
limitTo:创建一个只包含指定数目元素的数组或字符串。元素是按指定的值和符号(+或-)从数组、字符串或数字的开头或结尾获取的。如果输入一个数字,则转换为字符串。
使用:
HTML:{{limitTo_expression | limitTo:limit:begin}}
JS:$filter(“limitTo”)(input,limit,begin);
input:限制的数组,字符串,数字。
limit:限制的长度。
begin:限制长度开始的位置(根据索引)。
lowercase:将字符串转换为小写。
使用:
HTML:{{lowercase_expression | lowercase}}
JS:$filter(“lowercase”)(input);
Input:过滤的字符串。
number:将数值转换为文本。
如果输入是null或undefined,那么其将被返回。如果输入的是无穷(正无穷/负无穷),将会返回无穷大的符号“∞”。如果输入不是一个数字,返回一个空字符串。
使用:
HTML:{{number_expression | number:fractionSize}}
JS:$filter(“number”)(number,fractionSize);
number:转换的数值。
fractionSize:数值,整数的小数位数,默认为当前的最大位数。在默认的区域设置的情况下这个数值是3。
orderBy:通过判断表达式将指定的数组进行排序。它是按字符串的字母顺序和数值的数字排序的。
注意:如果你发现数字没有按预期排序,请确保它们实际上是被保存为数字而不是字符串。
使用:
HTML:{{orderBy_expression | orderBy:expression:reverse}}
JS:$filter(“orderBy”)(array,expression,reverse);
array:排序的数组。
expression:字符串/函数/数组,用来确定元素顺序的表达式。
reverse:boolean,颠倒数组的顺序。默认为false。
uppercase:将字符串转换为大写。
使用:
HTML:{{uppercase_expression |uppercase}}
JS:$filter(“uppercase”)(input);
Input:过滤的字符串。
自带filter使用代码:

<div ng-app="Demo" ng-controller="testCtrl as ctrl">
<!-- HTML: {{ctrl.currencyValue | currency:"USD$":1}} -->
{{ctrl.currencyValue}}
<!-- HTML: {{ctrl.dateValue | date:"yyyy-MM-dd"}} -->
{{ctrl.dateValue}}
<!-- HTML: <div ng-repeat="i in newArr = (ctrl.arr | filter:'2')">{{i}}</div> -->
<div ng-repeat="i in ctrl.newArr">{{i}}</div>
<!-- HTML: <div ng-repeat="i in newArr = (ctrl.arr | filter:{check:true})">{{i}}</div> -->
<div ng-repeat="i in ctrl._newArr">{{i}}</div>
{{ctrl.obj | json}}
<!-- HTML: <div ng-repeat="i in ctrl.arr | limitTo:3:2">{{i}}</div> -->
<div ng-repeat="i in ctrl.secondNewArr">{{i}}</div>
<!-- HTML: {{ctrl.str | lowercase}} -->
{{ctrl.str}}
<!-- HTML: <div ng-repeat="i in ctrl.arr | orderBy:'name':true">{{i}}</div> -->
<div ng-repeat="i in ctrl.thirdNewArr">{{i}}</div>
<!-- HTML: {{ctrl.str | uppercase}} -->
{{ctrl.newStr}}
</div>


(function () {
angular.module("Demo", [])
.controller("testCtrl", ["$filter",testCtrl]);
function testCtrl($filter) {
this.currencyValue = 1234.56;
this.currencyValue = $filter("currency")(this.currencyValue,"USD$",1);
this.dateValue = new Date();
this.dateValue = $filter("date")(this.dateValue,"yyyy-MM-dd");
this.arr = [{name:'John', phone:'555-1276',check:true},
{name:'Mary', phone:'800-BIG-MARY',check:false},
{name:'Mike', phone:'555-4321',check:true},
{name:'Adam', phone:'555-5678',check:true},
{name:'Julie', phone:'555-8765',check:false},
{name:'Juliette', phone:'555-5678',check:true}];
this.newArr = $filter("filter")(this.arr,"2");
this._newArr = $filter("filter")(this.arr,{check:true});
this.obj = {"name":"beast","age":21};
this.secondNewArr = $filter("limitTo")(this.arr,3,2);
this.str = "Hello World";
this.str = $filter("lowercase")(this.str);
this.thirdNewArr = $filter("orderBy")(this.arr,"name",true);
this.newStr = $filter("uppercase")(this.str);
};
}());

自定义filter
基本代码:
angular.module(“x”,[]).filter(“filterName”,[“dependancy”,function(dependancy){
return function(value){
//your code return the data which passed filter(返回过滤后的数据)
};
}]);
filterName:过滤器名称。
dependency:注入的服务。
value:需要过滤的数据。
自定义filter使用代码:
<div ng-app="Demo" ng-controller="testCtrl as ctrl">
<div ng-repeat="i in newArr=(ctrl.arr | myFilter)">
{{i.value}}
</div>
</div>

(function () {
angular.module("Demo", [])
.filter("myFilter",myFilter)
.controller("testCtrl", ["$filter",testCtrl]);
function myFilter(){
return function(value){
var arr = [];
angular.forEach(value,function(item,index){
if(item.value.indexOf("this")>=0){
arr.push(item);
}
});
return arr;
}
};
function testCtrl($filter) {
this.arr = [{"value":"this is a."},{"value":"that is b."},{"value":"this is c."},{"value":"that is a."}];
};
}());

这里对数组arr进行过滤,把数组中对象value属性的值含有”this“文本的对象都放进个新数组并返回该数组。
转自http://www.cnblogs.com/ys-ys/p/5006951.html
AngularJs filter 过滤器基础【转】的更多相关文章
- 转载 angularJS filter 过滤器
angularjs中的filter(过滤器) 标签: angularjsfilter 源文地址:http://www.ncloud.hk/技术分享/angularjs中的filter-过滤器/ f ...
- AngularJs filter 过滤器
Filter Ng里的过滤器. currency:把一个数字格式化成货币模式(如$1,234.56).当没有提供任何货币符号时,默认使用当前区域的符号. 使用: HTML:{{ currency_ex ...
- angularJS自定义 过滤器基础
先写个简单的例子,该过滤器是指定规定的字符串长度: html: <div ng-app="app" ng-controller="ctrl"> &l ...
- AngularJS学习--- 过滤器(filter),格式化要显示的数据 step 9
1.切换目录,启动项目 git checkout step- npm start 2.需求: 格式化要显示的数据. 比如要将true-->yes,false-->no,这样相互替换. 3. ...
- AngularJs(八) 过滤器filter创建
大纲 示例 过滤器的使用 创建过滤器 demo 这是整个示例demo 1.filter.js文件 angular.module("exampleApp", []) .constan ...
- angularjs学习第三天笔记(过滤器第二篇---filter过滤器及其自定义过滤器)
您好,我是一名后端开发工程师,由于工作需要,现在系统的从0开始学习前端js框架之angular,每天把学习的一些心得分享出来,如果有什么说的不对的地方,请多多指正,多多包涵我这个前端菜鸟,欢迎大家的点 ...
- python的map、reduce和filter(过滤器)函数(廖雪峰老师python基础)
1.map 语法: map(func,Iterable) map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返 ...
- AngularJS开发指南13:AngularJS的过滤器详解
AngularJS过滤器是用来格式化输出数据的.除了格式化数据,过滤器还能修改DOM.这使得过滤器通常用来做些如“适时的给输出加入CSS样式”等工作. 比如,你可能有些数据在输出之前需要根据进行本地化 ...
- SSH2——filter过滤器
概述: 过滤器是Servlet2.3以上新添加的一个功能,其技术也是很强大的.通过Filter技术能够对WEBserver的文件进行拦截,从而实现一些特殊的功能. 在JSP开发应用中也是必备的技能之中 ...
随机推荐
- Java编写验证码
Java后台代码(CheckCodeServlet.java) package web; import java.awt.Color; import java.awt.Font; import jav ...
- 【C语言】指向一维数组元素的指针
本文目录 一.用指针指向一维数组的元素 二.用指针遍历数组元素 三.指针与数组的总结 四.数组.指针与函数参数 前面我们已经学习了指针,如果指针存储了某个变量的地址,我们就可以说指针指向这个变量.数组 ...
- 填格子3*N的方框使用2*1的矩形进行填充
考虑每个位置的前一个状态 可以发现有 我们分别给他们编号 假设 现在填充到了i+1行,我们可以发现从i行可以通过填充转到i+1行的状态 第i行第j列表示 可以 从上一个转态 j 可以到达这个状态的j ...
- Linux基础命令---which
which 在环境变量PATH中搜索某个命令,返回命令的执行文件或者脚本位置,默认只显示第一个结果.这需要一个或多个参数.对于它的每个参数,它会打印出当在shell提示符下输入该参数时将执行的可执行文 ...
- 由于防火墙限制无法访问linux服务器上的tomcat应用
使用的是CentOS6.4系统. 问题重现: tomcat服务是启动的, 但无法访问服务器上的tomcat应用页面. 解决办法: 在防火墙配置中设置端口: 命令: # cd /etc/sysconfi ...
- 一些应该使用mongodb或者其他文档存储而不是redis或mysql、oracle json的情形(最近更新场景)
通常来说,我们应该使用应用的特性而不是自己的爱好或者规定而去选择一种合适的组件,选择的标准应该是这个组件最适合或者本身其设计就是为了解决这个问题,而不是这个组件能够做这事情为标准.就拿存储来说,任何时 ...
- Asterisk1.8 sip编码协商分析
在开始分析之前,先对编码协商中可能涉及的asterisk数据结构和变量作些说明.ast_channel:定义一个通用的通道数据结构 struct ast_channel { const struct ...
- Linux虚拟内存和物理地址的理解【转】
本文转载自:http://blog.csdn.net/dlutbrucezhang/article/details/9058583 在多任务操作系统中的每一个进程都运行在一个属于它自己的内存沙盘中.这 ...
- 骗访问量的机房人物列传by xMinh
作者:$xMinh$ 人物列传·Refun(Aufun,虚凡,人赢) 机房最人赢的人赢,上过表白墙的男人 在宿舍公然开设情感讲座和人赢培训班,教学成果显著,他的徒弟要么gay了要么凉了 认识的人极其广 ...
- 【基础配置】Dubbo的配置及使用
1. Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需 ...