Всем здрасте
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;
}
});