2016-03-24 10 views
0

配列フィルタ:AngularJS私は、次のNG-繰り返してきた

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

scheduleAbsenceDayContainerscheduleIntervalContainersの配列を含むことができた:

enter image description here

私の質問は今場合だろうすべてのscheduleIntervalContainersをフィルタする任意の可能性があります。containerType値。私はいずれかをGeteのか、いないときにのみ可能最初の方法を知らないので、私は成功withour、このいずれかを試してみました

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

: 私のするフィルターの名前はvm.absenceType calles です

<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}}" 
+0

なぜ 'ng-if ="を使用しないのですか?scheduleAbsenceDayContainer.scheduleIntervalContainers [0] .containerType === vm.absenceType "'? この 'ng-if'に' || !vm.absenceType' – AlexStef

答えて

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-繰り返しでfilter : vmを与える可能性があり。

関連する問題