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实现选项卡的特别效果的实例
Mar 03 Javascript
jQuery实现的AJAX简单弹出层效果代码
Nov 26 Javascript
jQuery中判断对象是否存在的方法汇总
Feb 24 Javascript
JS前端笔试题分析
Dec 19 Javascript
JS利用cookies设置每隔24小时弹出框
Apr 20 Javascript
jQuery扇形定时器插件pietimer使用方法详解
Jul 18 jQuery
AngularJS实现的base64编码与解码功能示例
May 17 Javascript
详解基于DllPlugin和DllReferencePlugin的webpack构建优化
Jun 28 Javascript
Layui组件Table绑定行点击事件和获取行数据的方法
Aug 19 Javascript
VUE DOM加载后执行自定义事件的方法
Sep 07 Javascript
vue路由传参的基本实现方式小结【三种方式】
Feb 05 Javascript
vue实现移动端触屏拖拽功能
Aug 21 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
关于Appserv无法打开localhost问题的解决方法
2009/10/16 PHP
PHP图像处理类库MagickWand用法实例分析
2015/05/21 PHP
PHP中抽象类、接口的区别与选择分析
2016/03/29 PHP
JS 精确统计网站访问量的实例代码
2013/07/05 Javascript
原生javascript实现自动更新的时间日期
2016/02/12 Javascript
全面了解javascript三元运算符
2016/06/27 Javascript
微信小程序 火车票查询实例讲解
2016/10/17 Javascript
基于angular2 的 http服务封装的实例代码
2017/06/29 Javascript
详解从买域名到使用pm2部署node.js项目全过程
2018/03/07 Javascript
详解如何使用webpack打包JS
2018/06/21 Javascript
Vue项目查看当前使用的elementUI版本的方法
2018/09/27 Javascript
基于vue.js实现分页查询功能
2018/12/29 Javascript
JavaScript this在函数中的指向及实例详解
2019/10/14 Javascript
JavaScript或jQuery 获取option value值方法解析
2020/05/12 jQuery
jQuery中getJSON跨域原理的深入讲解
2020/09/02 jQuery
[03:36]2014DOTA2 TI小组赛综述 八强诞生进军钥匙球馆
2014/07/15 DOTA
Python import用法以及与from...import的区别
2015/05/28 Python
Python和C/C++交互的几种方法总结
2017/05/11 Python
python查询mysql,返回json的实例
2018/03/26 Python
在cmd命令行里进入和退出Python程序的方法
2018/05/12 Python
Python对HTML转义字符进行反转义的实现方法
2019/04/28 Python
利用python和百度地图API实现数据地图标注的方法
2019/05/13 Python
python中比较两个列表的实例方法
2019/07/04 Python
使用python制作一个解压缩软件
2019/11/13 Python
Python @property及getter setter原理详解
2020/03/31 Python
TensorFlow保存TensorBoard图像操作
2020/06/23 Python
python如何安装下载后的模块
2020/07/03 Python
python爬虫中PhantomJS加载页面的实例方法
2020/11/12 Python
英国最大的独立摄影零售商:Park Cameras
2019/11/27 全球购物
SQL Server 2000数据库的文件有哪些,分别进行描述。
2015/11/09 面试题
机电专业毕业生求职信
2013/10/27 职场文书
农业资源与环境专业自荐信范文
2013/12/30 职场文书
师德师风个人总结
2015/02/06 职场文书
幼儿园教师个人工作总结2015
2015/05/12 职场文书
先进教师个人主要事迹材料
2015/11/03 职场文书
85句关于理想的名言警句大全
2019/08/22 职场文书