AngularJS 过滤器
来源:互联网 发布:淘宝店铺装修收费标准 编辑:程序博客网 时间:2024/04/27 18:05
前言
今天来把自己对AngularJS的一些认识和感悟给写下来,希望能和大家分享。
Angular的过滤器
Angular内部提供了一组过滤器,我们可以把他嵌在html里,就和angular的指令特性一样,不过这里我们需要借助的是一个 “|” 管道操作符,和stream的管道流有几分相似。
Angular内部提供了一组常用的过滤器,分别为一下几种:
1.currency 用两个小数位和一个货币符号来格式化一组数字
2.date 通过制定的格式来格式化一个时间
3.number 用指定的小数位来格式化输入
4.lowercase 将输入变为小写
5.uppercase 将输入变为大写
6.json 主要用于调试,能打印出被格式化后的json对象
7.orderBy 作用于数组的排序
以上就是比较常用的Angular内置的过滤器
除此之外,Angular还提供了一种“通用”的过滤器filter,之所以称之为通用,是因为它的名字而来的,它的名字就叫做filter。
下面可以做一个演示
拿到一组数据,然后将它用输入的数据当做索引,进行过滤
<!DOCTYPE html><html lang="en" ng-app="myApp"><head> <meta charset="UTF-8"> <title>Document</title></head><body> <div ng-controller="myController"> <table> <tr ng-repeat="x in arr"> <td>{{x.name}}</td> <td>{{x.age}}</td> </tr> </table> </div> <script src="./lib/angular.min.js" type="text/javascript"></script> <script type="text/javascript"> angular.module("myApp",[]) .controller("myController",$scope => { //声明一组数据 $scope.arr = [ {name:'zhangsan',age:18}, {name:'zhagsan',age:12}, {name:'zngsan',age:13}, {name:'zhangs',age:14}, {name:'angsan',age:18} ]; }); </script></body></html>
显示结果如下
现在我们来加一个用于输入过滤信息的输入框,创建一个有输入过滤的动态表格
<div ng-controller="myController"> <table> <input type="text" ng-model="text"> <tr ng-repeat="x in arr | filter:text"> <td>{{x.name}}</td> <td>{{x.age}}</td> </tr> </table> </div>
稍微修改了一下controller
这样看来,我们只把input的输入内容绑定在了一个名为text的数据模型上,然后传入filter过滤器,之后,我们就可以看到,我们已经可以过滤信息了
自定义过滤器
下面我们来创建一个自定义的过滤器,用于数据分页,后台为node.js , 数据库为mongodb,数据皆从mongodb拿到的。
由于都有注释我就不一一讲解了。
<!DOCTYPE html><html lang="en" ng-app="myApp"><head> <meta charset="UTF-8"> <title>Document</title> <style> .even{ background: #dcdcdc; } .odd{ background: transparent; } </style></head><body><!-- <input type="color"> --> <div ng-controller="myController"> <!-- 用于选择排序方式 --> <select name="aaa" ng-change="printSeleState()" ng-model="orderIndex" ng-options="x.v as x.text for x in selectArr"></select> <!-- 过滤器 --> <input type="text" placeholder="请输入你要过滤的数据" ng-model="filterText" /> <!-- 用于接受来自数据库的数据 --> <table> <tr> <td>name</td> <td>age</td> </tr> <tr ng-repeat="x in arr | filter:filterText | zzh:pageIndex:PAGE_SIZE" ng-class="{even:$even,odd:$odd}"> <td>{{x.name}}</td> <td>{{x.age}}</td> </tr> </table> <!-- 分页实现 --> <div> <button ng-click="jump($event.target)">1</button> <button ng-click="jump($event.target)">2</button> <button ng-click="jump($event.target)">3</button> <button ng-click="jump($event.target)">4</button> </div> </div> <script type="text/javascript" src="./lib/angular.min.js"></script> <script type="text/javascript"> //创建模块作用域 angular.module("myApp",[]) //转换为大写过滤器 .filter("zzh",() => { return (inputData,pageIndex,PAGE_SIZE) => { try{ let start = pageIndex * PAGE_SIZE; return inputData.slice(start,start + PAGE_SIZE); } catch(err){ // 吞并Exception // console.log(err); } } }) //获取数据的service .factory('getData', ['$http', $http => { return () => { return $http.get("http://localhost:9999"); }; }]) //controller逻辑 .controller('myController', ['$scope','getData','$filter',($scope,getData,$filter) => { //页码 $scope.pageIndex = 0; //每页数目 $scope.PAGE_SIZE = 4; //分页按钮点击 $scope.jump = (obj) => { $scope.pageIndex = obj.innerHTML - 1; } //获取后台mongodb数据 getData() .then(obj => { $scope.arr = obj.data; }) .catch(err => { if(err){ console.log("have a err in this project"); } }); }]); </script></body></html>
这样,我们就创建了一个数据分页的应用
下面我们来看看效果
下面为mongodb的上的数据
- angularjs 过滤器
- AngularJs 过滤器
- AngularJS--过滤器
- AngularJs过滤器
- AngularJS 过滤器
- AngularJS 过滤器
- AngularJs 过滤器
- AngularJS 过滤器
- AngularJS 过滤器
- AngularJS 过滤器
- angularjs-过滤器
- AngularJS 过滤器
- AngularJs过滤器
- angularJS 过滤器
- AngularJS 过滤器
- angularjs过滤器
- angularJS 过滤器
- AngularJS 过滤器
- from表单提交验证
- Android RemoteView的应用 三 新年倒计时通知栏
- 高分子材料成型(五)
- abstract class和interface的区别
- Java Server理解与实践 —— 集成Spring Web Security
- AngularJS 过滤器
- 2017最受欢迎大数据峰会一览表
- java中printf详解
- 引用jquery文件出现ReferenceError: $ is not defined
- 封装一个类:软键盘弹出,将控件整体顶上去
- CentOS VMware "mount: unknown filesystem type 'vmhgfs'"
- ZTree 增删修改(jsp/servlet)学习系列之一---前期准备
- TCP/IP(8)-UDP Server与UDP Client(linux套接字)
- java-微信分享自定义内容功能(总结)