【问题标题】:angular js filter for input multiple select用于输入多选的角度js过滤器
【发布时间】:2013-04-04 10:15:30
【问题描述】:

我有以下日期选择下拉菜单。

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

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

【问题讨论】:

  • 你能分享你的小提琴吗

标签: filter angularjs html-select


【解决方案1】:

我使用自定义函数解决了它(提供它来过滤)

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

还有其他简单的解决方案吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-08
    • 2021-07-20
    • 2021-05-03
    相关资源
    最近更新 更多