Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.08.2015, 17:29
Аспирант
Отправить личное сообщение для A1x1On2015 Посмотреть профиль Найти все сообщения от A1x1On2015
 
Регистрация: 24.02.2015
Сообщений: 37

Динамический фильтр в ng-repeat
Здравствуйте, мой код:

<div class="Tasks" data-ng-init="init()">
        <div>
            <i id="{{y.TaskId}}" ng-repeat="y in Tasks" ng-click="OpenTask($event)" class="iTask">
                <div>{{y.Title}}</div><br />
                <div class="d-disc">{{y.Description}}</div>
                <div class="d-date">

                    <b>Дата:</b> {{y.TaskTerm.substr(0, 10)}}
                </div>
                <div class="d-status"><b>Cтатус:</b> {{y.StatusString}}</div>
                <div class="d-tags"><b>Теги:</b> {{y.Tags}} </div>
            </i>
        </div>


по data-ng-init="init()", при загрузки страницы у меня приходят не фильтрованные данные, так и должно и есть
$scope.init = function () {
            TService.GetTasks().then(function(d) {
                $scope.Tasks = d.data;
            }, function() {
                alert("Fail of deleting task");
            });
        }


по клику на кнопку "фильтровать", динамически данные в ng-repeat должны отфильтровываться, но как это сделать я не пойму
<span id="55" ng-click="filterBy($event)" >фильтровать</span>


Возможно можно как-то вложить $scope после ng-repeat типа:
<i id="{{y.TaskId}}" ng-repeat="y in Tasks {{filter}}

а я по клику в функции бы присваивал значения
$scope.filterBy = function (obj) {
            $scope.filter = "filter:{ Tegs : 'расходы'}";

        }


Помогите пожалуйста
Ответить с цитированием
  #2 (permalink)  
Старый 08.09.2015, 18:40
Интересующийся
Отправить личное сообщение для grego Посмотреть профиль Найти все сообщения от grego
 
Регистрация: 09.01.2012
Сообщений: 26

1. у ng-repeat есть orderBy функциональность. Почитай тут https://docs.angularjs.org/api/ng/filter/orderBy. В этом же документе посмотри первый пример в Plunker (вот он http://plnkr.co/edit/yKCrobzz8DJirFImgJtL?p=preview).

В целом ты можешь использовать этот же подход
ng-repeat="y in Tasks | orderBy: predicate", где predicate поначалу пустая строка (в этом случае данные будут выводиться в порядке как есть). Соответственно в твоем методе ng-click="filterBy($event)" ты будешь делать что-то вроде $scope.predicate = '/*название поля для фильтрации*/'.
Обрати также внимание что orderBy принимает не только строку-свойство объекта но также и функцию.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фильтр по начальным символам Shasoft Angular.js 9 22.03.2015 09:25
фильтр для 60ти полей таблицы skrudjmakdak Элементы интерфейса 3 12.06.2014 10:03
ng-repeat кастомный фильтр для фильтрации обьектов (непонятное поведение) VerDiz Angular.js 10 04.08.2013 15:42
Фильтр каталога Nivans Элементы интерфейса 4 15.07.2012 15:27
Динамический список из DIV`ов и INPUT`ов Andrew_li jQuery 5 09.06.2011 15:23