Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.01.2016, 18:16
Новичок на форуме
Отправить личное сообщение для ZendX Посмотреть профиль Найти все сообщения от ZendX
 
Регистрация: 12.01.2016
Сообщений: 1

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;
    }
});

Последний раз редактировалось ZendX, 12.01.2016 в 18:18.
Ответить с цитированием
  #2 (permalink)  
Старый 19.01.2016, 16:31
Аватар для MetaDriver
Аспирант
Отправить личное сообщение для MetaDriver Посмотреть профиль Найти все сообщения от MetaDriver
 
Регистрация: 24.04.2014
Сообщений: 66

limitTo лимитит массивы, а ты возвращаешь из последнего фильтра объект. возвращай массив и будет щастье.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кнопка не работает после двух нажатий More_skills Общие вопросы Javascript 4 28.07.2013 21:22
Смешивание двух фильтров ivanforpw Общие вопросы Javascript 0 21.10.2012 14:22
Обрезание до двух знаков после запятой vladimircape Общие вопросы Javascript 4 16.10.2012 22:13