最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

angularjs自定义过滤器demo示例

来源:动视网 责编:小采 时间:2020-11-27 21:51:50
文档

angularjs自定义过滤器demo示例

angularjs自定义过滤器demo示例:本文实例讲述了angularjs自定义过滤器demo。分享给大家供大家参考,具体如下: 这个基于angularjs的过滤器是最近做的信息管理学院实验室预约项目中的一个小功能。 以下为数据: $scope['classes']=[{id:1,name:H503,capacity:4
推荐度:
导读angularjs自定义过滤器demo示例:本文实例讲述了angularjs自定义过滤器demo。分享给大家供大家参考,具体如下: 这个基于angularjs的过滤器是最近做的信息管理学院实验室预约项目中的一个小功能。 以下为数据: $scope['classes']=[{id:1,name:H503,capacity:4


本文实例讲述了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>

运行效果:

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.jb51.net/code/HtmlJsRun测试上述代码运行效果。

总结:filter可以理解为一个带参数的函数,它把一个对象进行一些处理,然后把处理后的对象返回。不过我认为以上的这个算法有待优化。

更多关于AngularJS相关内容感兴趣的读者可查看本站专题:《AngularJS指令操作技巧总结》、《AngularJS入门与进阶教程》及《AngularJS MVC架构总结》

希望本文所述对大家AngularJS程序设计有所帮助。

文档

angularjs自定义过滤器demo示例

angularjs自定义过滤器demo示例:本文实例讲述了angularjs自定义过滤器demo。分享给大家供大家参考,具体如下: 这个基于angularjs的过滤器是最近做的信息管理学院实验室预约项目中的一个小功能。 以下为数据: $scope['classes']=[{id:1,name:H503,capacity:4
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top