2013-04-04 75 views
0

我有以下日期选择下拉菜单。用于输入多选的角度js过滤器

<input type="text" ng-modle="byNameFilter"/> 
<select ng-model="byDateFilter" multiple="multiple"> 
<option ng-repeat="date in dates" value="{{date}}">{{date}}</option> 
</select> 
<div> 
<repeater ng:repeat="program in programNames | filter:byNameFilter | filter:byDateFilter"> 
    <a href="#/client/{{client}}/program/{{program.name}}" class="span2 btn">{{program.name}}</a> 
</repeater> 

程序结构是:

[{'name':'program1','dates':['date1', 'date2']},{'name':'program2','dates':['date3', 'date2']}] 

现在的过滤器正在工作的时候,我把NG-模型的一些文字:byNameFilter但是当我从选择下拉日期它不工作(这工作正常,如果我删除多个属性)。

我们如何能在angular.js

+0

你能不能分享你的小提琴 – 2013-04-04 12:05:48

回答

2

我解决它使用自定义功能,实现多个选择选项过滤器(提供它来过滤)

$scope.dateFilter = function (item) 
{ 
    //debugger; 

    if ($scope.byDateFilter === undefined || $scope.byDateFilter.length == 0) 
    { 
     return true; 
    } 

    for (var i in $scope.byDateFilter){   

     for (var j in item.dates) 
     { 
      if (item.dates[j] == $scope.byDateFilter[i]) 
      { 
       return true; 
      } 
     } 
    } 

    return false; 
} 

变化HTML:

<repeater ng:repeat="program in programNames | filter:byNameFilter | filter:dateFilter"> 

有没有其他简单的解决方案?