Filter 用于输入多重选择的角度js过滤器

Filter 用于输入多重选择的角度js过滤器,filter,angularjs,html-select,Filter,Angularjs,Html Select,我有以下日期选择下拉列表 <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:r

我有以下日期选择下拉列表

<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>
现在,当我在ng model:byNameFilter中放置一些文本时,该过滤器工作正常,但当我从select下拉列表中选择日期时,该过滤器不工作(如果我删除多个属性,它工作正常)


如何在angular.js中为多个选择选项实现过滤器

我使用一个自定义函数(提供给过滤器)解决了这个问题

html中的更改:

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


还有其他简单的解决办法吗?

请与我分享你的小提琴好吗
$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;
}
<repeater ng:repeat="program in programNames | filter:byNameFilter | filter:dateFilter">