Limit в ng-repeat после двух фильтров
Всем здрасте :)
AngularJS 1.4.8 Есть вот такой ХТМЛ кода: <tr ng-cloak class="main_schedule_date_row" ng-repeat="row in scheduleData | flightFilter:flightFilterInput | dateFilter:dateOpts.date | limitTo:3 track by $index" ng-if="row.type === 'date'"> FlightFilter и dateFilter - кастомные фильтры, сами по себе работают, но! после них не работает limitTo, т.е., отображает все записи. Ошибок никаких нету, просто лимит не лимитит :) Почему так может происходить? Код фильтров: var modules = angular.module('scheduleFilters', []); modules.filter('flightFilter', function(){ return function(input, search) { if (!input) return input; if (!search) return input; var expected = ('' + search).toLowerCase(); var result = {}; angular.forEach(input, function(value, key) { var flight_item = value.value; var actual = ('' + flight_item.flight_number + flight_item.city).toLowerCase(); if (value.type === 'date') result[key] = value; else if(value.type === 'flight' && actual.indexOf(expected) !== -1) result[key] = value; }); return result; } }); modules.filter('dateFilter', function(){ return function(input, search) { if (!input) return input; if (!search) return input; var expected = ('' + search).toLowerCase(); var result = {}; angular.forEach(input, function(value, key) { var flight_item = value.value; if (value.type === 'date') { if(flight_item === expected) result[key] = value; } else if(value.type == 'flight' && flight_item.date === expected) result[key] = value; }); return result; } }); |
limitTo лимитит массивы, а ты возвращаешь из последнего фильтра объект. возвращай массив и будет щастье.
|
Часовой пояс GMT +3, время: 00:19. |