加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs 过滤器filter 学习笔记

发布时间:2020-12-17 09:58:42 所属栏目:安全 来源:网络整理
导读:文章参考 http://www.tuicool.com/articles/ueUZBv 过滤器(filter)正如其名,作用就是接收一个输入,通过某个规则进行处理,然后返回处理后的结果 。 主要用在数据的格式化上,例如获取一个数组中的子集,对数组中的元素进行排序等。 ng内置了一些过滤器(

文章参考

http://www.tuicool.com/articles/ueUZBv

过滤器(filter)正如其名,作用就是接收一个输入,通过某个规则进行处理,然后返回处理后的结果

主要用在数据的格式化上,例如获取一个数组中的子集,对数组中的元素进行排序等。

ng内置了一些过滤器(总共九种),它们是

currency(货币)

date(日期)

filter(子串匹配)

json(格式化json对象)

limitTo(限制个数)

lowercase(小写)

uppercase(大写)

number(数字)

orderBy(排序)

除此之外还可以自定义过滤器,这个就强大了,可以满足任何要求的数据处理。

日期格式化

<p>{{time | date: 'yyyy-MM-dd HH:mm:ss'}}</p>
<p>{{1432075948123 | date: 'yyyy-MM-dd HH:mm:ss'}}</p>

数组对象筛选

<div ng-init="myArr = [{name:'Tom',age:20},{name:'Tom Senior',age:50},{name:'May',age:21},{name:'Jack',{name:'Alice',age:22}]">
	<!-- 参数expression使用String,将全文搜索关键字 'a' -->
	<div ng-repeat="u in myArr | filter:'a' ">
		<p>Name:{{u.name}}</p>
		<p>Age:{{u.age}}</p>
		<br />
	</div>
</div>
$scope.childrenArray = [
	{name:'kimi',age:3},{name:'cindy',age:4},{name:'anglar',{name:'shitou',age:6},{name:'tiantian',age:5}
];

$scope.func = function(e){
	return e.age>4;
}

{{ childrenArray | filter : 'a' }} //匹配属性值中含有a的
{{ childrenArray | filter : 4 }}  //匹配属性值中含有4的
{{ childrenArray | filter : {name : 'i'} }} //参数是对象,匹配name属性中含有i的
{{childrenArray | filter : func }}  //参数是函数,指定返回age>4的

json(格式化json对象)

json过滤器可以把一个js对象格式化为json字符串,没有参数。

{{ jsonTest | json}}

控制器controller和service 中使用filter

例如我要在controller中使用currency过滤器,只需将它注入到该controller中即可

app.controller('testC',function($scope,currencyFilter){
    $scope.num = currencyFilter(123534);  
}

app.controller('testC',$filter){
    $scope.num = $filter('currency')(123534);
  $scope.date = $filter('date')(new Date());  
}

自定义过滤器

/**
 * 在为null, undefined, "", 的情况下面设置默认值
 * */
angular.module('hkApp')
	.filter("setDefaultValueWithoutData",function(){
		return function(inputValue,defaultValue){
			if(inputValue == null || inputValue == undefined || inputValue == ""){
				return defaultValue;
			}
			return inputValue;
		}
	});

提醒:filter方法里面是直接返回一个function,没有任何参数,方法里面返回的函数中才是需要处理的数据。如果需要在filter方法里面添加参数,这个参数就需要“注入”定义的服务或者方法。

angular.module('Swpz')
    .filter('expressStateFilter',function() {
        return function(value) {
            var state;
            switch (value) {
                case '0':
                    state = '运输中';
                    break;
                case '1':
                    state = '揽件';
                    break;
                case '2':
                    state = '疑难';
                    break;
                case '3':
                    state = '签收成功';
                    break;
                case '4':
                    state = '已退签';
                    break;
                case '5':
                    state = '正在派件';
                    break;
                case '6':
                    state = '已退回';
                    break;
            }
            return state;
        };
    });

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读