angularjs自定义过滤器demo示例


Posted in Javascript onAugust 24, 2019

本文实例讲述了angularjs自定义过滤器demo。分享给大家供大家参考,具体如下:

这个基于angularjs的过滤器是最近做的"信息管理学院实验室预约"项目中的一个小功能。

以下为数据:

$scope['classes']=[{id:1,name:"H503",capacity:40,software:"photoshop,金蝶,AI",freeTime:"周一1-2-3,周五1-2-3,周一5-6,"},
   {id:2,name:"H504",capacity:50,software:"chrome,金蝶,office,"
   ,freeTime:"周二1-2-3,周三3-4,周一5-6,"},
   {id:3,name:"H505",capacity:60,software:"chrome,LOL,office,"
   ,freeTime:"周二1-2-3,周三3-4,周四7-8,"}
];

具体功能:

分别在两个select选择星期和课次,列表会即时根据条件更新。

完整代码:

<!DOCTYPE html>
<html ng-app="myApp" >
<head>
<meta charset="utf-8">
<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
</head>
<body>
<div ng-controller="myCtrl">
 <select ng-model="day">
  <option selected="">周一</option>
  <option>周二</option>
  <option>周三</option>
  <option>周四</option>
  <option>周五</option>
 </select>
  <select ng-model="order">
  <option selected="">1-2</option>
  <option>1-2-3</option>
  <option>3-4</option>
  <option>1-2-3-4</option>
  <option>5-6</option>
  <option>7-8</option>
  </select>
  <ul>
   <li ng-repeat="class in classes | myFiter:day:order">
     <span>{{class.id}}</span>
     <span>{{class.name}}</span>
      <span>{{class.capacity}}</span>
      <span>{{class.software}}</span>
   </li>
  </ul>
 </select>
</div>
<script type="text/javascript">
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
 //假数据
  $scope['classes']=[{id:1,name:"H503",capacity:40,software:"photoshop,金蝶,AI",freeTime:"周一1-2-3,周五1-2-3,周一5-6,"},
   {id:2,name:"H504",capacity:50,software:"chrome,金蝶,office,"
   ,freeTime:"周二1-2-3,周三3-4,周一5-6,"},
   {id:3,name:"H505",capacity:60,software:"chrome,LOL,office,"
   ,freeTime:"周二1-2-3,周三3-4,周四7-8,"}
  ];
  //select的默认值
  $scope.order="1-2";
  $scope.day="周一";
});
//自定义过滤器
app.filter('myFiter',function()
{
 return function(input,day,order)
 {
   var time=day+order;
   var output=[];
   for(var i=0;i<input.length;i++)
   {
   var n=input[i].freeTime.indexOf(time);
   // console.log(n);
   // console.log(input[i].freeTime.charAt(n+time.length));
    if(n!=-1)//如果能找到
    {
     if(input[i].freeTime.charAt(n+time.length)==',')
     //这样做是为了防止1-2与1-2-3是一样的结果
      output.push(input[i]);
    }
   }
   return output;
 }
})
</script>
</body>
</html>

运行效果:

angularjs自定义过滤器demo示例

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

总结:filter可以理解为一个带参数的函数,它把一个对象进行一些处理,然后把处理后的对象返回。不过我认为以上的这个算法有待优化。

希望本文所述对大家AngularJS程序设计有所帮助。

Javascript 相关文章推荐
菜单效果
Oct 14 Javascript
Uglifyjs(JS代码优化工具)入门 安装使用
Apr 13 Javascript
我的Node.js学习之路(三)--node.js作用、回调、同步和异步代码 以及事件循环
Jul 06 Javascript
jQuery实现3D文字特效的方法
Mar 10 Javascript
javascript实现校验文件上传控件实例
Apr 20 Javascript
javascript实现通过表格绘制颜色填充矩形的方法
Apr 21 Javascript
C++中的string类的用法小结
Aug 07 Javascript
headjs实现网站并行加载但顺序执行JS
Nov 29 Javascript
概述BootStrap中role=&quot;form&quot;及role作用角色
Dec 08 Javascript
Vue iview-admin框架二级菜单改为三级菜单的方法
Jul 03 Javascript
vue移动端实现红包雨效果
Jun 23 Javascript
Vue实现购物车实例代码两则
May 30 Javascript
Jquery实现获取子元素的方法分析
Aug 24 #jQuery
微信小程序class封装http代码实例
Aug 24 #Javascript
微信小程序前端promise封装代码实例
Aug 24 #Javascript
node获取客户端ip功能简单示例
Aug 24 #Javascript
js针对图片加载失败的处理方法分析
Aug 24 #Javascript
js prototype和__proto__的关系是什么
Aug 23 #Javascript
帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)
Aug 23 #Javascript
You might like
PHP读取汉字的点阵数据
2015/06/22 PHP
实现PHP中session存储及删除变量
2018/10/15 PHP
javascript IFrame 强制刷新代码
2009/07/23 Javascript
JavaScript 关键字屏蔽实现函数
2009/08/02 Javascript
JS 添加千分位与去掉千分位的示例
2013/07/11 Javascript
window.navigate 与 window.location.href 的使用区别介绍
2013/09/21 Javascript
原生Javascript封装的一个AJAX函数分享
2014/10/11 Javascript
js实现类似新浪微博首页内容渐显效果的方法
2015/04/10 Javascript
详解AngularJS中的依赖注入机制
2015/06/17 Javascript
动态加载jQuery的两种方法实例分析
2015/07/17 Javascript
QQ登录背景闪动效果附效果演示源码下载
2015/09/22 Javascript
基于jquery fly插件实现加入购物车抛物线动画效果
2016/04/05 Javascript
jQuery实现简单滚动动画效果
2016/04/07 Javascript
javascript超过容器后显示省略号效果的方法(兼容一行或者多行)
2016/07/14 Javascript
微信小程序 MD5的方法详解及实例代码
2017/03/10 Javascript
js操作table中tr的顺序实现上移下移一行的效果
2018/11/22 Javascript
express+vue+mongodb+session 实现注册登录功能
2018/12/06 Javascript
点击按钮弹出模态框的一系列操作代码实例
2019/03/29 Javascript
使用js实现单链解决前端队列问题的方法
2020/02/03 Javascript
JavaScript canvas动画实现时钟效果
2020/02/10 Javascript
微信小程序拖拽排序列表的示例代码
2020/07/08 Javascript
基于原生JS封装的Modal对话框插件的示例代码
2020/09/09 Javascript
js 图片懒加载的实现
2020/10/21 Javascript
[04:28]DOTA2亚洲邀请赛小组赛第五日 TOP10精彩集锦
2015/02/03 DOTA
Python NumPy库安装使用笔记
2015/05/18 Python
使用Python机器学习降低静态日志噪声
2018/09/29 Python
python数据处理——对pandas进行数据变频或插值实例
2020/04/22 Python
python3让print输出不换行的方法
2020/08/24 Python
超市总经理岗位职责
2014/02/02 职场文书
关于读书的演讲稿1000字
2014/08/27 职场文书
员工培训协议书
2014/09/15 职场文书
离婚财产处理协议书
2014/09/30 职场文书
文明单位创建材料
2014/12/24 职场文书
世界卫生日宣传活动总结
2015/02/09 职场文书
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
2021/06/22 Python
MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决
2022/12/24 MySQL