0
.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 重复:

ng-repeat="task in tasksCtrl.tasks"

下面是包含 ng-options 的 ng-repeat 表格单元格:

<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 作为参数来传递函数。虽然我很挣扎!

任何帮助将不胜感激。

4

1 回答 1

0

解决方案

.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-选项:

ng-options="item.id_user as item.name for item in tasksCtrl.validators | statusFilter:task.validator_id"
于 2018-06-12T14:19:52.677 回答