ng-repeat-start в строке таблицы - количество основано на ng-show true - PullRequest
0 голосов
/ 07 июня 2018

У меня есть таблица, отображающая содержимое на основе ng-show.

<tr ng-repeat-start ="row in values" ng-show="applName.indexOf(row.some_name) == -1 || !checkVal"> 
<td></td> 
</tr>

applName - это массив с некоторыми значениями, которые я хочу отфильтровать, если установлен мой флажок (checkVal).

Мне нужно посчитать количество отображаемых строк.

Как мне этого добиться?Я попытался получить счетчик, но счетчик отображает общее количество, а не отображаемое общее количество.

Редактировать:

Я переместил логику фильтра в контроллер.

<tr ng-repeat-start ="row in results = (values | filter:myFilter('filter_field',chekVal)"> 
<td></td> 
</tr>
{{results.length}}

Но теперь, так как я использую нумерацию страниц, счет будет показывать только количество страниц на этой странице, а не общее количество страниц.Я должен изменить логику для нумерации страниц?

1 Ответ

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

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

Ex1:

 $scope.filterFun= function(){
 // Do some tests

    if(condition)
    {
        return true; // this will be listed in the results
    }

    return false; 
}
 ng-repeat = "result in results | filter:filterFun"

Ex2: --- код контроллера ---

 function MyCtrl($scope){
        $scope.people = [
            {id: 1, name: "Mark"},
            {id: 2, name: "John"},
            {id:3, name: "Joe"}
        ];
        $scope.myFilter = function(item){
            if(item.id === 1){
                return item;
            }
        };
    }

---- HTML-код -

 <div ng-app>
        <div ng-controller="MyCtrl">
           <ul>
               <li ng-repeat="person in people | filter:myFilter">
                   {{person.id}}
                   -
                   {{person.name}}
               </li>
           </ul>
        </div>
    </div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...