Javascript.RU

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

ng-repeat и фильтрация
Добрый вечер. Проблема такая: есть такой "ng-repeat" - ng-repeat="item in getRecentContacts()" который рисует массив(результат функции getRecentContacts)

$scope.getRecentContacts = function() {
                return allContacts.filter(function(contact){
                    if(!$scope.search){
                        return allContacts;
                    } else {
                        var filtered = [];
                        var letterMatch = new RegExp($scope.search, 'i');
                        for (var i = 0; i < allContacts.length; i++) {
                            var item = allContacts[i];
                            if (letterMatch.test(item.isDateRecent ? item.isDateRecent.dateRecentName : '' ||
                                (item.data.lastName) ? item.data.lastName.substring(0, item.data.lastName.length) :
                                item.data.name.substring(0, item.data.name.length))) {
                                filtered.push(item);
                            }
                        }
                        return filtered;
                    }
                });
            };


При вводе в поисковое поле ($scope.search) критерия поиска фильтрация отрабатывает, возвращает отфильтрованный массив, но отфильтрованный массив не рендерится. В чем может быть проблема?

Последний раз редактировалось Alexej, 26.03.2015 в 18:34.
Ответить с цитированием
  #2 (permalink)  
Старый 27.03.2015, 11:05
Интересующийся
Отправить личное сообщение для Alexej Посмотреть профиль Найти все сообщения от Alexej
 
Регистрация: 20.02.2013
Сообщений: 18

Разобрался. Теперь рендерит

$scope.getRecentContacts = function() {
                return allContacts.filter(function(contact){
                    if(!$scope.search){
                        return allContacts;
                    } else {
                        var letterMatch = new RegExp($scope.search, 'i');
                        if (letterMatch.test(contact.isDateRecent ? contact.isDateRecent.dateRecentName : '' ||
                            (contact.data.lastName) ? contact.data.lastName.substring(0, contact.data.lastName.length) :
                            contact.data.name.substring(0, contact.data.name.length))) {
                            return contact;
                        }
                    }
                });
            };
Ответить с цитированием
  #3 (permalink)  
Старый 16.04.2015, 07:33
Новичок на форуме
Отправить личное сообщение для infarkt Посмотреть профиль Найти все сообщения от infarkt
 
Регистрация: 26.07.2014
Сообщений: 6

хм интересно, не понятно зачем фильтр обёрнут в функцию, если всё в одном контроллере, смысла передавать 'i' нет. Сам не люблю инъекции в HTML, но ng-repeat гибок,
ng-repeat='data in data_list_filter = (data_list | filter:content_filter) | orderBy:sort_field:sort_reverse | Pagination:pageNo:itemsPage'
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фильтрация данных Alfer Элементы интерфейса 4 04.08.2014 15:58
angluarjs, фильтрация в checkbox sun-ks Angular.js 1 16.04.2014 12:50
фильтрация .csv таблицы br1ck Элементы интерфейса 0 13.11.2013 08:35
ie7 фильтрация Артем125 Элементы интерфейса 4 06.09.2012 20:27
Сортировка и фильтрация в селекторе amt779 jQuery 1 08.07.2011 03:09