全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

详解Angular的内置过滤器和自定义过滤器【推荐】

在实际的开发过程中,很多後端返回给我们的数据都是需要格式化处理的,在angular中为我们内置提供了filter指令,可以很方便的对数据进行处理。首先我们看看在视图中是如何使用过滤器的。

1、currency(货币)格式化

<div ng-controller="Aaa">
 <p>{{name | currency:'¥'}}</p>
</div>
<script type="text/javascript">
 var m1 = angular.module('myApp',[]);
 m1.controller('Aaa',['$scope',function($scope){
  $scope.name = '12334.273489274834';
 }]);
</script>

在name的数据後面使用|符号表示启用过滤器,如果对linux比较熟悉的话,这块的|根linux的管道功能。currency可以理解成函数,而'¥'则是函数的参数,如果不传默认为$符号!

2、number(数字)格式化

<div ng-controller="Aaa">
 <p>{{name | number:2}}</p>
</div>
<script type="text/javascript">
 $scope.name = '12334.273489274834';
</script>

用来精确浮点数(精确到2位)默认是3位。

3、uppercase , lowercase(大小写)格式化

<div ng-controller="Aaa">
 <p>{{name | uppercase}}</p>
</div>
<script type="text/javascript">
 var m1 = angular.module('myApp',[]);
 m1.controller('Aaa',['$scope',function($scope){
  $scope.name = 'hello';
 }]);
</script>

uppercase转换成大写,lowercase转换成小写

4、json(数据)格式化

<div ng-controller="Aaa">
 <pre>{{name | json}}</pre>
</div>
<script type="text/javascript">
 var m1 = angular.module('myApp',[]);
 m1.controller('Aaa',['$scope',function($scope){
  $scope.name = { name : 'xcg',age : 19 };
 }]);
</script>

以json的格式输出到页面中,视图只能使用pre标签才可以识别

5、limitTo(截取)格式化

<div ng-controller="Aaa">
 <p>{{name | limitTo : 3}}</p>
</div>
<script type="text/javascript">
 var m1 = angular.module('myApp',[]);
 m1.controller('Aaa',['$scope',function($scope){
  $scope.name = '123456789';
 }]);
</script>

截取字符串,数字不行。。。

6、limitTo(截取)格式化

<div ng-controller="Aaa">
 <p>{{name | date : 'yyyy-MM-dd hh:mm:ss'}}</p>
  <p>{{name | date : 'MM/dd/yyyy @ h:mma'}}</p>
</div>
<script type="text/javascript">
 var m1 = angular.module('myApp',[]);
 m1.controller('Aaa',['$scope',function($scope){
  $scope.name = 1448022616463;
 }]);
</script>

7、orderBy(排序)格式化

<div ng-controller="Aaa">
 <pre>{{name | orderBy : 'age' : true | json}}</pre>
<div>
<script type="text/javascript">
 var m1 = angular.module('myApp',[]);
 m1.controller('Aaa',['$scope',function($scope){
  $scope.name = [
   {color : 'red',age : '10'},
   {color : 'yellow',age : '20'},
   {color : 'blue',age : '30'},
   {color : 'green',age : '40'}
  ];
 }]);
</script>

如果排序的值是字母,就按照字母的顺序来排序。如果是数字,从大到小。传入true则为逆向排序。

8、filter(筛选&过滤)格式化

<div ng-controller="Aaa">
 <pre>{{name | filter : 'l' | json}}</pre>
</div>
<script type="text/javascript">
 var m1 = angular.module('myApp',[]);
 m1.controller('Aaa',['$scope',function($scope){
  $scope.name = [
   {color : 'red',age : '10'},
   {color : 'yellow',age : '20'},
   {color : 'blue',age : '30'},
   {color : 'green',age : '40'}
  ];
 }]);
</script>

在filter传入'l',会筛选出blue以及yellow。

<pre>{{name | filter : 'yellow' : true | json}}</pre> 如果像这样再传入true,就必须保证value的完整性,单单的'l'是无法筛选出来的。

上面都是在视图中以表达式的形式使用过滤器,下面我们来看看在JS中使用过滤器。

<div ng-controller="Aaa">
 <p>{{currency}}</p>
 <p>{{number}}</p>
 <p>{{uppercase}}</p>
 <pre>{{json}}</pre>
 <p>{{limitTo}}</p>
 <p>{{date}}</p>
 <pre>{{orderBy}}</pre>
 <pre>{{filter}}</pre>
</div>
<script type="text/javascript">
var m1 = angular.module('myApp',[]);
m1.controller('Aaa',['$scope','$filter',function($scope,$filter){
 var colors = [{color : 'red',age : '10'},
   {color : 'yellow',age : '20'},
   {color : 'blue',age : '30'},
   {color : 'green',age : '40'}];

 $scope.currency = $filter('currency')(12334.273489274834,'¥');
 $scope.number = $filter('number')('12334.273489274834',2);
 $scope.uppercase = $filter('uppercase')('hello');
 $scope.json = $filter('json')({ name : 'xcg',age : 19 });
 $scope.limitTo = $filter('limitTo')('xiecg',2);
 $scope.date = $filter('date')('1448106268837','yyyy-MM-dd hh:mm:ss');
 $scope.orderBy = $filter('orderBy')(colors,'age',true);
 $scope.filter = $filter('filter')(colors,'l');
}]);
</script>

这些都属于内置过滤器,我们还可以用.filter自定义过滤器。

<div ng-controller="Aaa">
 <p>{{name | firstUpper : 2}}</p> 
</div>
<script type="text/javascript">
var m1 = angular.module('myApp',[]);
//自定义过滤器
m1.filter('firstUpper',function(){
 return function(str,num){
  console.log(num); //2,得到传递的参数
  return str.charAt(0).toUpperCase() + str.substring(1);
 }
});
m1.controller('Aaa',['$scope','$filter',function($scope,$filter){
 $scope.name = 'hollo';
}]);
</script>

这里我们自定义了一个首字母大写的方法,例子是在视图中使用的,也可以在JS中使用过滤器。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# Angular  # 过滤器  # 详解AngularJS中自定义过滤器  # 详解AngularJS中$filter过滤器使用(自定义过滤器)  # AngularJS使用Filter自定义过滤器控制ng-repeat去除重复功能示例  # AngularJS 自定义过滤器详解及实例代码  # AngularJS自定义过滤器用法经典实例总结  # Angularjs 依赖压缩及自定义过滤器写法  # angularJs自定义过滤器实现手机号信息隐藏的方法  # AngularJS实现的自定义过滤器简单示例  # 简述angular自定义过滤器在页面和控制器中的使用  # Angular.Js中过滤器filter与自定义过滤器filter实例详解  # angularjs自定义过滤器demo示例  # 自定义  # 是在  # 转换成  # 都是  # 则是  # 可以用  # 给我们  # 才可以  # 这块  # 看在  # 很方便  # 则为  # 如何使用  # 中以  # 大到  # 中为  # 过程中  # 默认为  # 不传  # 首字母 


相关文章: 制作营销网站公司,淘特是干什么用的?  ,sp开头的版面叫什么?  宿州网站制作公司兴策,安徽省低保查询网站?  长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  如何在橙子建站中快速调整背景颜色?  如何生成腾讯云建站专用兑换码?  香港服务器网站推广:SEO优化与外贸独立站搭建策略  建站之星安装需要哪些步骤及注意事项?  如何在建站宝盒中设置产品搜索功能?  免费公司网站制作软件,如何申请免费主页空间做自己的网站?  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  如何确保FTP站点访问权限与数据传输安全?  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  如何选择最佳自助建站系统?快速指南解析优劣  建站之星CMS五站合一模板配置与SEO优化指南  建站之星云端配置指南:模板选择与SEO优化一键生成  如何用西部建站助手快速创建专业网站?  深圳企业网站制作设计,在深圳如何网上全流程注册公司?  建站主机功能解析:服务器选择与快速搭建指南  javascript中对象的定义、使用以及对象和原型链操作小结  php条件判断怎么写_ifelse和switchcase的使用区别【对比】  专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?  建站主机是否属于云主机类型?  广德云建站网站建设方案与建站流程优化指南  南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?  seo网站制作优化,网站SEO优化步骤有哪些?  如何彻底删除建站之星生成的Banner?  如何选择高效便捷的WAP商城建站系统?  个人摄影网站制作流程,摄影爱好者都去什么网站?  如何通过建站之星自助学习解决操作问题?  如何将凡科建站内容保存为本地文件?  ,网站推广常用方法?  南平网站制作公司,2025年南平市事业单位报名时间?  如何在景安服务器上快速搭建个人网站?  重庆网站制作公司哪家好,重庆中考招生办官方网站?  如何制作网站标识牌,动态网站如何制作(教程)?  PHP 500报错的快速解决方法  网页设计网站制作软件,microsoft office哪个可以创建网页?  装修招标网站设计制作流程,装修招标流程?  宝华建站服务条款解析:五站合一功能与SEO优化设置指南  陕西网站制作公司有哪些,陕西凌云电器有限公司官网?  建站之星代理商如何保障技术支持与售后服务?  如何在阿里云服务器自主搭建网站?  家庭服务器如何搭建个人网站?  如何选择美橙互联多站合一建站方案?  如何高效利用亚马逊云主机搭建企业网站?  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  如何快速搭建高效WAP手机网站吸引移动用户?  如何基于云服务器快速搭建个人网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。