版权声明:本文为博主原创文章,未经博主允许不得转载。【合作联系QQ1668681286】 https://blog.csdn.net/qq_33036361/article/details/82012520
过滤器
1.内置过滤器
过滤器 | 说明 |
---|---|
currency | 货币处理,传入一个货币符号参数{{num|currency:'¥'}} 输出格式为:¥99 |
date | 时间格式化,{{date | date : 'yyyy-MM-dd hh:mm:ss a EEEE'}} , y年M月d日h时m分s秒 a(AM、PM) EEEE星期,H大写为24小时制 |
filter | 匹配子串(用于数组) |
number | 格式化数字,加上千位分割 ,为float时,后面可带参数,指定小数位数 |
uppercase | 数据转化为全部大写 |
lowercase | 数据转化为全部小写 |
orderBy | 排序(用于数组),默认升序排序,前面加‘-’负号为降序排序 |
json | 格式化json对象 相当于 JSON.stringify |
limitTo | 限制数组长度或字符串长度 |
示例:
<html ng-app="myApp">
<head>
<script src="angular.js" charset="utf-8"></script>
<script>
//创建一个模块 myApp
let app = angular.module('myApp', []);
//在模块 myApp 在创建一个控制器 main
app.controller('main',function($scope){
//初始化 用户 ,name名称,nick昵称,age年龄,sell销售额
$scope.users=[{name:'ken',nick:'ken', age:35,sell:99000,time:1500000000000},{name:'john',nick:'john',age:28,sell:39000,time:1500000000000},{name:'may',nick:'may',age:22,sell:59000,time:1500000000000}];
$scope.num1=9999;
});
</script>
</head>
<body ng-controller="main">
<form name="myform">
<p>显示名字包含‘n’ 的用户:(按年龄降序排序, 名字全大写,昵称小写,销售额保留两位小数),时间显示为 x年x月x日</p>
<ul>
<li ng-repeat="item in users|filter:{name:'n'}|orderBy:-'age'">name:{{item.name|uppercase}} nick:{{item.nick|lowercase}} age:{{item.age}} sell:{{item.sell|number:2}} time:{{item.time|date:'y年M月d日'}}</li>
</ul>
currency示例:{{num1|currency:'$'}}<br>
json示例:{{users|json}}<br>
</form>
</body>
</html>
2.自定义过滤器
注:第一个参数必填,是调用者本身。
示例 :
let app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.msg = "Runoob";
});
//自定义过滤器 字符串反向输出
app.filter('reverse', function() { //可以注入依赖
return function(text) {
return text.split("").reverse().join("");
}
});
//自定义过滤器 N倍数字 例:num*10 {{num|multi:10}}
app.filter('multi',function(){
return function(num,n=2){ return num*n;}
});