angular 笔记(三)过滤器

版权声明:本文为博主原创文章,未经博主允许不得转载。【合作联系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;}
});

上一篇(模块、控制器、作用域示例)

猜你喜欢

转载自blog.csdn.net/qq_33036361/article/details/82012520