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 相关文章推荐
Js 回车换行处理的办法及replace方法应用
Jan 24 Javascript
Jquery+CSS3实现一款简洁大气带滑动效果的弹出层
May 15 Javascript
键盘KeyCode值列表汇总
Nov 26 Javascript
再分享70+免费的jquery 图片滑块效果插件和教程
Dec 15 Javascript
jQuery中detach()方法用法实例
Dec 25 Javascript
JavaScript中的Truthy和Falsy介绍
Jan 01 Javascript
js弹出对话框方式小结
Nov 17 Javascript
基于JS2Image实现圣诞树代码
Dec 24 Javascript
vue 使用eventBus实现同级组件的通讯
Mar 02 Javascript
angular 数据绑定之[]和{{}}的区别
Sep 25 Javascript
jQuery实现的简单日历组件定义与用法示例
Dec 24 jQuery
js图片查看器插件用法示例
Jun 22 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
一个好用的分页函数
2006/11/16 PHP
安装APACHE
2007/01/15 PHP
提示Trying to clone an uncloneable object of class Imagic的解决
2011/10/27 PHP
php 的加密函数 md5,crypt,base64_encode 等使用介绍
2012/04/09 PHP
深入解析yii权限分级式访问控制的实现(非RBAC法)
2013/06/13 PHP
PHP SPL标准库之数据结构栈(SplStack)介绍
2015/05/12 PHP
PHP上传文件参考配置大文件上传
2015/12/16 PHP
iOS10推送通知开发教程
2016/09/19 PHP
js脚本实现数据去重
2014/11/27 Javascript
详解JavaScript数组的操作大全
2015/10/19 Javascript
深入理解jQuery中的事件冒泡
2016/05/24 Javascript
js学习之----深入理解闭包
2016/11/21 Javascript
微信小程序 Button 组件详解及简单实例
2017/01/10 Javascript
jQuery 表单序列化实例代码
2017/06/11 jQuery
Vue.js 通过jQuery ajax获取数据实现更新后重新渲染页面的方法
2018/08/09 jQuery
Vue.js 实现数据展示全部和收起功能
2018/09/05 Javascript
微信小程序开发之自定义tabBar的实现
2018/09/06 Javascript
Vue开发之watch监听数组、对象、变量操作分析
2019/04/25 Javascript
js前端对于大量数据的展示方式及处理方法
2020/12/02 Javascript
深入解析Python中的集合类型操作符
2015/08/19 Python
Spring实战之使用util:命名空间简化配置操作示例
2019/12/09 Python
tensorflow多维张量计算实例
2020/02/11 Python
PyQt5.6+pycharm配置以及pyinstaller生成exe(小白教程)
2020/06/02 Python
python线性插值解析
2020/07/05 Python
python 爬虫爬取京东ps4售卖情况
2020/12/18 Python
python文件路径操作方法总结
2020/12/21 Python
移动端html5 meta标签的神奇功效
2016/01/06 HTML / CSS
学习党章思想汇报
2014/01/07 职场文书
大学优秀班集体申报材料
2014/05/23 职场文书
高考励志标语
2014/06/05 职场文书
心理学专业求职信
2014/06/16 职场文书
幼儿园标语大全
2014/06/19 职场文书
2014年财务工作自我评价
2014/09/23 职场文书
幼师自荐信范文(2016推荐篇)
2016/01/28 职场文书
辞职申请书范本
2019/05/20 职场文书
Windows Server 2022 超融合部署(图文教程)
2022/06/25 Servers