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 相关文章推荐
Ext.MessageBox工具类简介
Dec 10 Javascript
jQuery 幻灯片插件(带缩略图功能)
Jan 24 Javascript
JavaScript 垃圾回收机制分析
Oct 10 Javascript
对JavaScript中this指针的新理解分享
Jan 31 Javascript
轻松使用jQuery双向select控件Bootstrap Dual Listbox
Dec 13 Javascript
Bootstrap教程JS插件滚动监听学习笔记分享
May 18 Javascript
jQuery.Uploadify插件实现带进度条的批量上传功能
Jun 08 Javascript
VUEJS实战之利用laypage插件实现分页(3)
Jun 13 Javascript
Angular 输入框实现自定义验证功能
Feb 19 Javascript
webpack打包单页面如何引用的js
Jun 07 Javascript
JS实现简单的抽奖转盘效果示例
Feb 16 Javascript
Webpack按需加载打包chunk命名的方法
Sep 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
php 将excel导入mysql
2009/11/09 PHP
淘宝ip地址查询类分享(利用淘宝ip库)
2014/01/07 PHP
PHP加Nginx实现动态裁剪图片方案
2014/03/10 PHP
PHP实现加密的几种方式介绍
2015/02/22 PHP
PHP常见的几种攻击方式实例小结
2019/04/29 PHP
node.js中的console.warn方法使用说明
2014/12/09 Javascript
使用Node.js配合Nginx实现高负载网络
2015/06/28 Javascript
基于javascript实现泡泡大冒险网页版小游戏
2016/03/23 Javascript
微信公众平台开发教程(六)获取个性二维码的实例
2016/12/02 Javascript
node文件批量重命名的方法示例
2017/10/23 Javascript
elementUI中Table表格问题的解决方法
2018/12/04 Javascript
小程序实现短信登录倒计时
2019/07/12 Javascript
使用layer模态框给新页面传值的方法
2019/09/27 Javascript
小谈angular ng deploy的实现
2020/04/07 Javascript
javascript 使用sleep函数的常见方法详解
2020/04/26 Javascript
[01:00:59]VP VS VG Supermajor小组赛胜者组第二轮 BO3第二场 6.2
2018/06/03 DOTA
Python RabbitMQ消息队列实现rpc
2018/05/30 Python
在pycharm 中添加运行参数的操作方法
2019/01/19 Python
python程序变成软件的实操方法
2019/06/24 Python
python字典嵌套字典的情况下找到某个key的value详解
2019/07/10 Python
python3.7实现云之讯、聚合短信平台的短信发送功能
2019/09/26 Python
解决pycharm中导入自己写的.py函数出错问题
2020/02/12 Python
python实现连连看游戏
2020/02/14 Python
Django添加bootstrap框架时无法加载静态文件的解决方式
2020/03/27 Python
STAUD官方网站:洛杉矶独有的闲适风格
2019/04/11 全球购物
新闻专业个人求职信
2013/12/19 职场文书
教育技术学专业职业规划书
2014/03/03 职场文书
坚定理想信念心得体会
2014/03/11 职场文书
歌颂祖国的演讲稿
2014/05/04 职场文书
民主生活会批评与自我批评总结
2014/10/17 职场文书
幼儿园父亲节活动总结
2015/02/12 职场文书
销售辞职信范文
2015/03/02 职场文书
2015年社区综治工作总结
2015/04/21 职场文书
2015年社区精神文明工作总结
2015/05/26 职场文书
详细总结Python常见的安全问题
2021/05/21 Python
详细聊聊Oracle表碎片对性能有多大的影响
2022/03/19 Oracle