пользовательский фильтр angularjs ng-repeat ng-options - PullRequest
0 голосов
/ 12 июня 2018
.filter('statusFilter', function() {

        return function(listings) {
        var filtered = [];
        var arr = [];

        angular.forEach(listings, function(listing) {
            if(listing.status != 0){
            filtered.push(listing);
            }
        });
        return filtered;
        };
    })

Приведенный выше фильтр работает нормально, чтобы удалить записи с нулевым статусом из списка в раскрывающемся списке в каждой строке таблицы ng-repeat.

Однако мой начальник сказал, чтоему нужны записи с нулевым статусом, если они являются текущим выбором по умолчанию.С помощью вышеуказанного фильтра выбор по умолчанию является пустым для записей с нулевым статусом.

Это ng-repeat:

ng-repeat="task in tasksCtrl.tasks"

И ниже ячейка таблицы ng-repeat, содержащая ng-параметры:

<td level="{{tasksCtrl.level}}" check-permissions="onlyAdmin">
                            <select name="selValidator-{{ task.id }}"
                                    class="full-width select-width-tasks"
                                    ng-options="item.id_user as item.name for item in tasksCtrl.validators | statusFilter" 
                                    ng-model="task.validator_id" 
                            </select>
                        </td>

Мне нужно также добавить в список фильтров, которые имеют нулевой list.status, но равный list.id_user, равный task.validator_id

Я считаю, что япоэтому необходимо добавить task.validator_id в качестве параметра для прохождения через функцию.Я борюсь, хотя!

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 12 июня 2018

РЕШЕНИЕ

.filter('statusFilter', function() {

        return function(listings, id) {
        var filtered = [];
        angular.forEach(listings, function(listing) {
            //console.log([id, listing.id_user, listing.name, id == listing.id_user]);
            if(listing.status != 0 || id == listing.id_user){
            filtered.push(listing);
            }
        });
        return filtered;
        };
    })

нг-опции:

ng-options="item.id_user as item.name for item in tasksCtrl.validators | statusFilter:task.validator_id"
...