【angularJS】Filter 过滤器
当从后台获取到的数据呈现到视图上时,此时可能需要对数据进行相应的转换,此时我们可以通过过滤器在不同页面进行不同数据的格式抓换,在AngularJS中有常见默认的过滤器,当然若不满足所需,我们可以自定义过滤器。 AngularJS 过滤器可以用来格式化数据,过滤器能够用在表达式和指令中。 使用一个管道字符(|)添加到表达式和指令中。 默认过滤器 列举AngularJS中常见的过滤器,如下:
? filter(匹配子串) 这个名叫filter的filter(不得不说这名字起的,真让人容易混淆——!) 用来处理一个数组,然后可以过滤出含有某个子串的元素,作为一个子数组来返回。可以是字符串数组,也可以是对象数组。如果是对象数组,可以匹配属性的值。它接收一个参数,用来定义子串的匹配规则。下面举个例子说明一下参数的用法,我用现在特别火的几个孩子定义了一个数组: $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的 ? 自定义过滤器 AngularJS不仅仅支持内部自构建的过滤器,而且还可以自定义过滤器来满足我们所需,若自定义过滤器此时我们需要 通过module.filter来实现,实际上内部是通过FilterProvider来实现。module.filter这个方法有两个参数,一个是需要创建的过滤器的名称,另外一个是创建一个factory函数来使得该自定义过滤器生效或者工作。 接下来我们实现一个自定义过滤器,该过滤器带一个参数(reverse),实现了再对照代码就明朗了。如下: app.filter("properCase",function () { return function (value,reverse) { //value是需要使用过滤器的对象 if (angular.isString(value)) { var intermediate = reverse == false ? value.toUpperCase() : value.toLowerCase(); return (reverse == false ? intermediate[0].toLowerCase() :intermediate[0].toUpperCase()) + intermediate.substr(1); } else { return value; } }; }); 接下来在视图中将绑定的名称和类别修改成如下: value | filter:reverse ?<td>{{p.name | properCase}}</td>? //首字母大写 ?<td>{{p.category | properCase : false}}</td>? //首字母小写 混合过滤器 当进行渲染数据时,有可能需要进行多次过滤此时我们就需要创建多个自定义过滤器或者内置过滤器和自定义过滤器混合使用。 <tr ng-repeat="p in products | orderBy :‘name‘ | skipRec:2">? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- playframework – org.scala-sbt#sbt; ${{sbt.version}}:在
- WebService学习笔记(二)
- twitter-bootstrap-3 – 如何使用bootstrap 3创建一个粘滞的
- AngularJS之ng-disabled指令
- 积跬步,聚小流------Bootstrap学习记录(3)
- 使用routerLink(s)第二次单击组件后,仅更新angular 2服务订
- Shell编程基础
- scala – 无法找到参数flash的隐含值
- scala cloud foundry mongodb:访问mongodb否认
- 1、Angular JS 学习笔记 - 了解概念