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, время: 11:40. |