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">