2016-03-24 3 views
0

У меня есть следующие нг-повторить:AngularJS фильтровать массив

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

и scheduleAbsenceDayContainer может содержать массив scheduleIntervalContainers:

enter image description here

Мой вопрос теперь будет, если есть возможность фильтровать все расписаниеIntervalContainers со специальным containerType значение. Моего filter- имя является Кальесами vm.absenceType:

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

Я попробовал этот Withour успеха, потому что я не знаю, как Gete любого или когда не представляется возможным только первая один:

<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 ='AbsenceDayContainer.scheduleIntervalContainers [0] .containerType === vm.absenceType" '? вы можете добавить в это 'ng-if' a' || ! vm.absenceType' – AlexStef

ответ

0

Вам нужно будет использовать вложенный ng-repeat. Затем вы можете использовать собственный фильтр для фильтрации расписанияIntervalContainers, используя переменную модели vm.absenceType.

<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 и давая filter : vm вложенной нг-повтор ,

Смежные вопросы