2013-04-04 125 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"> 

有沒有其他簡單的解決方案?