全网整合营销服务商

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

免费咨询热线: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示例  # 自定义  # 是在  # 转换成  # 都是  # 则是  # 可以用  # 给我们  # 才可以  # 这块  # 看在  # 很方便  # 则为  # 如何使用  # 中以  # 大到  # 中为  # 过程中  # 默认为  # 不传  # 首字母 


相关文章: 焦点电影公司作品,电影焦点结局是什么?  网页设计与网站制作内容,怎样注册网站?  建站主机如何选?性能与价格怎样平衡?  广平建站公司哪家专业可靠?如何选择?  网站制作壁纸教程视频,电脑壁纸网站?  制作企业网站建设方案,怎样建设一个公司网站?  整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?  动图在线制作网站有哪些,滑动动图图集怎么做?  长沙做网站要多少钱,长沙国安网络怎么样?  如何选择最佳自助建站系统?快速指南解析优劣  广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?  常州自助建站工具推荐:低成本搭建与模板选择技巧  专业网站建设制作报价,网页设计制作要考什么证?  如何快速打造个性化非模板自助建站?  打鱼网站制作软件,波克捕鱼官方号怎么注册?  SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?  c# 在ASP.NET Core中管理和取消后台任务  如何自定义建站之星模板颜色并下载新样式?  相册网站制作软件,图片上的网址怎么复制?  建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  北京的网站制作公司有哪些,哪个视频网站最好?  如何高效完成独享虚拟主机建站?  c# F# 的 MailboxProcessor 和 C# 的 Actor 模型  建站之星上传入口如何快速找到?  高端云建站费用究竟需要多少预算?  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  建站之星备案流程有哪些注意事项?  西安专业网站制作公司有哪些,陕西省建行官方网站?  如何用5美元大硬盘VPS安全高效搭建个人网站?  建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析  高防服务器租用首荐平台,企业级优惠套餐快速部署  历史网站制作软件,华为如何找回被删除的网站?  如何快速搭建支持数据库操作的智能建站平台?  如何选择美橙互联多站合一建站方案?  如何在服务器上三步完成建站并提升流量?  想学网站制作怎么学,建立一个网站要花费多少?  宝华建站服务条款解析:五站合一功能与SEO优化设置指南  如何获取开源自助建站系统免费下载链接?  零基础网站服务器架设实战:轻量应用与域名解析配置指南  建站ABC备案流程中有哪些关键注意事项?  怎么将XML数据可视化 D3.js加载XML  专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  网站制作的方法有哪些,如何将自己制作的网站发布到网上?  如何做网站制作流程,*游戏网站怎么搭建?  b2c电商网站制作流程,b2c水平综合的电商平台?  如何登录建站主机?访问步骤全解析  ,如何利用word制作宣传手册?  如何快速生成可下载的建站源码工具? 

您的项目需求

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