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 相关文章推荐
javascript document.images实例
May 27 Javascript
常见的jQuery选择器汇总
Nov 24 Javascript
DOM节点深度克隆函数cloneNode()用法实例
Jan 12 Javascript
JavaScript中判断变量是数组、函数或是对象类型的方法
Feb 25 Javascript
jQuery插件windowScroll实现单屏滚动特效
Jul 14 Javascript
JS实现兼容性好,带缓冲的动感网页右键菜单效果
Sep 18 Javascript
重新理解JavaScript的六种继承方式
Mar 24 Javascript
Angular4 反向代理Details实践
May 30 Javascript
vue中使用codemirror的实例详解
Nov 01 Javascript
webpack打包多页面的方法
Nov 30 Javascript
jQuery 隐藏/显示效果函数用法实例分析
May 20 jQuery
ElementUI实现el-form表单重置功能按钮
Jul 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
php中explode与split的区别介绍
2012/10/03 PHP
CI框架开发新浪微博登录接口源码完整版
2014/05/28 PHP
PHP实现格式化文件数据大小显示的方法
2015/01/03 PHP
PHP的PDO常用类库实例分析
2016/04/07 PHP
JS 自定义函数缺省值的设置方法
2010/05/05 Javascript
jQuery最佳实践完整篇
2011/08/20 Javascript
Javascript图像处理—亮度对比度应用案例
2013/01/03 Javascript
javascript去掉前后空格的实例
2013/11/07 Javascript
使用jQuery jqPlot插件绘制柱状图
2014/12/18 Javascript
Jquery和angularjs获取check框选中的值的方法汇总
2016/01/17 Javascript
Angularjs 制作购物车功能实例代码
2016/09/14 Javascript
前端设计师们最常用的JS代码汇总
2016/09/25 Javascript
javaScript语法总结
2016/11/25 Javascript
基于jQuery实现弹幕APP
2017/02/10 Javascript
vue2.0实战之使用vue-cli搭建项目(2)
2017/03/27 Javascript
深入理解AngularJS中的ng-bind-html指令
2017/03/27 Javascript
vue项目中的webpack-dev-sever配置方法
2017/12/14 Javascript
vue-cli项目配置多环境的详细操作过程
2018/10/30 Javascript
react写一个select组件的实现代码
2019/04/03 Javascript
Python实现身份证号码解析
2015/09/01 Python
Windows下Python使用Pandas模块操作Excel文件的教程
2016/05/31 Python
python实现稀疏矩阵示例代码
2017/06/09 Python
5款非常棒的Python工具
2018/01/05 Python
将tensorflow的ckpt模型存储为npy的实例
2018/07/09 Python
Django中的文件的上传的几种方式
2018/07/23 Python
python取余运算符知识点详解
2019/06/27 Python
Python 面向对象之类class和对象基本用法示例
2020/02/02 Python
Tensorflow 卷积的梯度反向传播过程
2020/02/10 Python
HTML5印章绘制电子签章图片(中文英文椭圆章、中文英文椭圆印章)
2019/06/03 HTML / CSS
Raffaello Network西班牙:意大利拉斐尔时尚购物网
2019/03/12 全球购物
static函数与普通函数有什么区别
2015/12/25 面试题
数据库基础的一些面试题
2012/02/25 面试题
法院授权委托书范文
2014/08/02 职场文书
2014年班主任德育工作总结
2014/12/05 职场文书
幼师中班个人总结
2015/02/12 职场文书
Ajax是什么?Ajax高级用法之Axios技术
2021/04/21 Javascript