AngularJS过滤一个数组

时间:2016-03-24 07:30:23

标签: angularjs filter

我有以下ng-repeat:

<td data-ng-repeat="scheduleAbsenceDayContainer in scheduleAbsenceMonthContainer.scheduleAbsenceDayContainers track by $index

scheduleAbsenceDayContainer 可以包含 scheduleIntervalContainers 的数组:

enter image description here

我现在的问题是,是否有可能使用特殊的 containerType 值过滤所有scheduleIntervalContainers。 我的过滤器名称是calles vm.absenceType

<select name="typeSelection" id="typeSelection" data-ng-model="vm.absenceType"

我已经尝试过这个,但是我不知道如何做任何事情或者什么时候不可能只有第一个:

<td data-ng-repeat="scheduleAbsenceDayContainer in scheduleAbsenceMonthContainer.scheduleAbsenceDayContainers track by $index | filter: {scheduleIntervalContainers(any or - when not possible than only first): {containerType.value: vm.absenceType}}"

1 个答案:

答案 0 :(得分:0)

您需要使用嵌套的ng-repeat。然后,您可以使用自定义过滤器使用vm.absenceType模型变量过滤scheduleIntervalContainers。

<div data-ng-repeat="scheduleAbsenceDayContainer in scheduleAbsenceMonthContainer.scheduleAbsenceDayContainers track by $index">
    <div data-ng-repeat="scheduleIntervalContainer in scheduleAbsenceDayContainer.scheduleIntervalContainers | filter: check" >
    </div>
</div>

自定义过滤功能

$scope.check = function(a){
    if (angular.equals(a.containerType,$scope.vm.absenceType))
        return true;
    else
        return false;                    
}

您也可以在没有自定义过滤器功能的情况下通过将过滤器模型(如果可能)重命名为vm.containerType并在嵌套的ng-repeat中提供filter : vm来实现此功能。