AngularJS的内置过滤器
内置过滤器使用方法:
一个过滤器,不带参数的情况
{{expression | filter}}
一个过滤器,带参数的情况
{{expression | filter:arguments}}
一个过滤器,带多个参数的情况
{{expression | filter: arg1: arg2: ...}}
多个过滤器,不带参数的情况
{{expression | filter1 | filter2 | ...}}
currency
currency允许我们设置自己的货币符号,默认情况下会采用客户端所处区域的货币符号。
可以这样使用:{{ 3600 | currency: "$¥"}}
返回结果为$¥123.00
number
number过滤器将数字格式化成文本,它的参数是可选的,用来控制小数点后的截取位数
如果传入的是一个非数字字符,会返回空字符串
可以这样使用:{{ 3600 | number:2}}
返回结果为:3,600.00
{{ 3.1415926 | number:2 }} -> 3.14
{{ -3.1415926 | number:2 }}->
lowercase
lowercase将字符串转换为小写
可以这样使用:{{ "HEllo" | lowercase}}
返回结果为:hello
uppercase
uppercase将字符串转换为大写
可以这样使用:{{ "HEllo" | uppercase}}
返回结果为:HELLO
json
json过滤器可以将一个JSON或者JavaScript对象转换成字符串。
这个过滤器对调试相当有用
可以这样使用:{{ {"name":"dreamapple","language":"AngularJS"} | json}}
返回结果为:{ "name": "dreamapple", "language": "AngularJS" }
date
date过滤器将日期过滤成你想要的格式,这个实在是很好的过滤器。
这个过滤器用法很多我这里列举几种常用的
{{ today | date: "yyyy - mm - dd"}}
结果为:2015 - 15 - 13
{{ today | date: "yyyy - mm - dd HH:mm::ss"}}
结果为:2015 - 18 - 13 20:18::38
orderBy
排列
{{[{name:'coolcao',age:23},{name:'lily',age:20},{name:'tom',age:22}] | orderBy:'age'}}
结果: [{"name":"lily","age":20},{"name":"tom","age":22},{"name":"coolcao","age":23}]
默认是升序排列,如果要降序
{{[{name:'coolcao',age:23},{name:'lily',age:20},{name:'tom',age:22}] | orderBy:'age':true}}
参数是数组的 age 相同的 按 name排序
{{[{name:'coolcao',age:23},{name:'lily',age:20},{name:'tom',age:22}] | orderBy:['age','name']}}
filter
function(array, expression, comparator)
指定comparator为false或者undefined,即为默认值可不传,将以大小写不敏感的方式匹配任意内容 comparator为true,true即大小写及内容均需完全匹配
filter可以根据条件过滤数据
匹配属性值中 含有coolcao的
{{[{name:'coolcao',age:23},{name:'lily',age:20},{name:'tom',age:22}] | filter:'coolcao'}}
结果为:[{"name":"coolcao","age":23}]
匹配 age 属性值中 含有22的
{{[{name:'coolcao',age:23},{name:'lily',age:20},{name:'tom',age:22}] | filter:{age : 22}}
结果为:[{"name":"tom","age":22}]
匹配函数 age属性值大于 22 的
$scope.func=function(e){return e.age>22;}
{{[{name:'coolcao',age:23},{name:'lily',age:20},{name:'tom',age:22}] | filter:func}
结果为:[{"name":"coolcao","age":23}]
自定义过滤器
filter的自定义方式也很简单,使用module的filter方法,返回一个函数,该函数接收输入值,并返回处理后的结果。话不多说,我们来写一个看看。比如我需要一个过滤器,它可以返回一个数组中下标为奇数的元素,代码如下:
app.filter('odditems',function(){
return function(inputArray){
var array = [];
for(var i=0;i<inputArray.length;i++){
if(i%2!==0){
array.push(inputArray[i]);
}
}
return array;
}
});
浙公网安备 33010602011771号