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 相关文章推荐
jquery中JSON的解析方式
Mar 16 Javascript
jQuery延迟加载图片插件Lazy Load使用指南
Mar 25 Javascript
JavaScript中的Promise使用详解
Jun 24 Javascript
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
Apr 07 Javascript
基于Bootstrap框架实现图片切换
Mar 10 Javascript
js弹出窗口简单实现代码
Mar 22 Javascript
简单谈谈require模块化jquery和angular的问题
Jun 23 jQuery
理解Angular的providers给Http添加默认headers
Jul 04 Javascript
详解让sublime text3支持Vue语法高亮显示的示例
Sep 29 Javascript
详解处理bootstrap4不支持远程静态框问题
Jul 20 Javascript
JavaScript如何获取一个元素的样式信息
Jul 29 Javascript
TypeScript类型声明书写详解
Aug 28 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 高手之路(一)
2006/10/09 PHP
解析php中call_user_func_array的作用
2013/06/07 PHP
php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法
2015/10/20 PHP
PHP多维数组遍历方法(2种实现方法)
2015/12/10 PHP
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
PHP读取文件,解决中文乱码UTF-8的方法分析
2020/01/22 PHP
如何实现JS函数的重载
2006/09/22 Javascript
js 表格隔行颜色
2009/12/02 Javascript
jQuery Ajax 实例全解析
2011/04/20 Javascript
基于jquery编写的放大镜插件
2016/03/23 Javascript
基于javascript实现图片滑动效果
2016/05/07 Javascript
JS仿百度自动下拉框模糊匹配提示
2016/07/25 Javascript
ES6新增数据结构WeakSet的用法详解
2017/08/07 Javascript
Es6 Generator函数详细解析
2018/02/24 Javascript
Angular利用内容投射向组件输入ngForOf模板的方法
2018/03/05 Javascript
js构建二叉树进行数值数组的去重与优化详解
2018/03/26 Javascript
vue devtools的安装与使用教程
2018/08/08 Javascript
解决vue单页路由跳转后scrollTop的问题
2018/09/03 Javascript
一篇文章弄懂javascript中的执行栈与执行上下文
2019/08/09 Javascript
[01:03]DOTA2新的征程 你的脚印值得踏上
2014/08/13 DOTA
Python 变量类型及命名规则介绍
2013/06/08 Python
Python实现3行代码解简单的一元一次方程
2014/08/18 Python
Python实现豆瓣图片下载的方法
2015/05/25 Python
Linux下Pycharm、Anaconda环境配置及使用踩坑
2018/12/19 Python
python 使用openpyxl读取excel数据
2021/02/18 Python
python爬虫scrapy框架的梨视频案例解析
2021/02/20 Python
中国排名第一的外贸销售网站:LightInTheBox.com(兰亭集势)
2016/10/28 全球购物
Notino法国:购买香水和化妆品
2019/04/15 全球购物
.TTL是什么?有什么用处,通常那些工具会用到它?(ping? traceroute? ifconfig? netstat?)
2016/05/09 面试题
拾金不昧表扬信范文
2014/01/11 职场文书
保安岗位职责
2014/02/21 职场文书
珍惜时间演讲稿
2014/05/14 职场文书
个人委托书
2014/07/31 职场文书
2014年医院后勤工作总结
2014/12/06 职场文书
学校捐款活动总结
2015/05/09 职场文书
2016年寒假学习心得体会
2015/10/09 职场文书