1、过滤器是对数据进行筛选/处理,在数据展示时使用;过滤器可以使用一个管道字符(|)添加到表达式和指令中。
语法: {{ data | filter名称:参数 }}
{{expression | filter1 |filter2 |…}}
<!--货币过滤器
currency currency:"¥"格式化数字为货币格式。
-->
<h2>{{money | currency:'¥' }}</h2>
<h2>{{money | currency:'$' }}</h2>
<!-- 日期过滤器
date:'yyyy/MM/dd hh:mm:sss'
-->
<h3>{{time | date:'yyyy/MM/dd hh:mm:ss' }}</h3>
<h3>{{time | date:'yyyy-MM-dd HH:mm:ss' }}</h3>
<h3>{{time | date:'yyyy-MM-dd a HH:mm:ss' }}</h3>
<!--
大小写转换
lowercase
uppercase
-->
<p> {{'Hello' | lowercase}}</p>
<p> {{'hello' | uppercase}}</p>
<script>
var app=angular.module('app',[]);
app.controller('main',['$scope',function($scope){
$scope.money='9999.88';
//时间
$scope.time=new Date().getTime();
}])
</script>
2、自定义过滤器:
调用:
{{ date | 名称 }}
语法:模型.filter('名称',function(){
return function(input){
}
})
说明:①.return 的函数是定义过滤功能的地方
②.return 的函数中有一个默认的参数(input),这个参数代表的是调用这个过滤器的数据, 如果有其他参数,可以在后面继续写
<h2>{{ str | qufan }}</h2>
<script>
var app=angular.module('app',[]);
app.controller('main',['$scope',function($scope){
$scope.str='hello world';
}])
//自定义过滤器---字符串取反
app.filter('qufan',function(){
return function(can){//can 参数
//.....处理中...
return can.split('').reverse().join('');//dlrow olleh
}
})
</script>
3、 多级过滤器:
filter用来处理一个数组,然后可以过滤出含有某个子串的元素,作为一个子数组来返回。
<p>匹配数组里面含o制字符的内容 </p>
<ul>
<li ng-repeat='item in arr | filter:"e"'>{{ item }}</li>
</ul>
<p>匹配属性值中包含'张'的所有项</p>
<ul>
<li ng-repeat='item in arrList | filter:"张"'>
<p>{{item.id}}</p>
<p>{{item.name}}</p>
<p>{{item.age}}</p>
</li>
</ul>
<p>匹配age属性值 大于 30的项</p>
<ul>
<li ng-repeat='item in arrList | filter:maxAge'>
<p>{{item.id}}</p>
<p>{{item.name}}</p>
<p>{{item.age}}</p>
</li>
</ul>
var app=angular.module('app',[]);
app.controller('main',['$scope',function($scope){
//数组
$scope.arr=['how','are','you','love','boy'];
$scope.arrList = [
{
id:12,
name:'张一',
age:20,
},
{
id:23,
name:'张二',
age:31,
},
{
id:34,
name:'李三',
age:12,
},
{
id:45,
name:'张五',
age:33,
},
{
id:56,
name:'李六',
age:24,
}
]
//方法 年龄大于 30 age>30
$scope.maxAge=function(arr){
//arrList.age>30
return arr.age>30;
}
}])
附:日期格式
格式化字符串的基本参数:
‘yyyy’: 用4位数字表示年(例如:AD 1 => 0001, AD 2010 => 2010)
‘yy’: 用两位数字表示年(00-99)(例如:AD 2001 => 01, AD 2010 => 10)
‘y’: 用一位数字代表年(例如:AD 1 => 1, AD 199 => 199)
‘MMMM’: 英文全称表示月(January-December)
‘MMM’: 英文缩写表示月(Jan-Dec)
‘MM’: 两位数字表示月(01-12)
‘M’: 月(1-12)
‘dd’: 两位数字表示日(01-31)
‘d’: 日(1-31)
‘EEEE’: 英文全称的一周中的天(Sunday-Saturday)
‘EEE’: 英文缩写的一周中的天(Sun-Sat)
‘HH’: 两位数表示24小时制的时(00-23)
‘H’: 24小时制的时(0-23)
‘hh’: 两位数字表示上午或下午的时(01-12)
‘h’: 上午或下午的时(1-12)
‘mm’: 两位数字表示分(00-59)
‘m’: 分(0-59)
‘ss’: 两位数字表示秒(00-59)
‘s’: 秒(0-59)
‘sss’: 毫秒(000-999)
‘a’: AM/PM
‘Z’: 4位数字(+符号)代表时区偏移量(-1200——+1200)
‘ww’: 用两位数字表示一年的周数(00-53),第一周(01)是一年中的第一个星期四
‘w’: 一年的周数(0-53),第一周(1)是一年中的第一个星期四
‘G’,’GG’,‘GGG’: 年代字符串的缩写形式,例如‘AD’(公元)
‘GGGG’: 年代字符串的全称,例如‘Anno Domini’(公元)