欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

angularjs自定義過(guò)濾器demo示例

 更新時(shí)間:2019年08月24日 14:26:57   作者:qq328691560  
這篇文章主要介紹了angularjs自定義過(guò)濾器,結(jié)合完整實(shí)例形式分析了angularjs自定義過(guò)濾器相關(guān)原理、使用方法及操作注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了angularjs自定義過(guò)濾器demo。分享給大家供大家參考,具體如下:

這個(gè)基于angularjs的過(guò)濾器是最近做的"信息管理學(xué)院實(shí)驗(yàn)室預(yù)約"項(xiàng)目中的一個(gè)小功能。

以下為數(shù)據(jù):

$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,"}
];

具體功能:

分別在兩個(gè)select選擇星期和課次,列表會(huì)即時(shí)根據(jù)條件更新。

完整代碼:

<!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) {
 //假數(shù)據(jù)
  $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的默認(rèn)值
  $scope.order="1-2";
  $scope.day="周一";
});
//自定義過(guò)濾器
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是一樣的結(jié)果
      output.push(input[i]);
    }
   }
   return output;
 }
})
</script>
</body>
</html>

運(yùn)行效果:

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運(yùn)行工具http://tools.jb51.net/code/HtmlJsRun測(cè)試上述代碼運(yùn)行效果。

總結(jié):filter可以理解為一個(gè)帶參數(shù)的函數(shù),它把一個(gè)對(duì)象進(jìn)行一些處理,然后把處理后的對(duì)象返回。不過(guò)我認(rèn)為以上的這個(gè)算法有待優(yōu)化。

更多關(guān)于AngularJS相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《AngularJS指令操作技巧總結(jié)》、《AngularJS入門(mén)與進(jìn)階教程》及《AngularJS MVC架構(gòu)總結(jié)

希望本文所述對(duì)大家AngularJS程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論