Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs ng表格行中重复开始-基于ng的计数显示为真_Angularjs - Fatal编程技术网

Angularjs ng表格行中重复开始-基于ng的计数显示为真

Angularjs ng表格行中重复开始-基于ng的计数显示为真,angularjs,Angularjs,我有一个基于ng show显示内容的表格 <tr ng-repeat-start ="row in values" ng-show="applName.indexOf(row.some_name) == -1 || !checkVal"> <td></td> </tr> 但是现在因为我使用分页,所以计数将仅是单个页面中的计数,而不是跨页面的总计数。我必须更改分页逻辑?尝试使用自定义筛选函数ng repeat array,然后根据条件筛选数组,

我有一个基于ng show显示内容的表格

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

但是现在因为我使用分页,所以计数将仅是单个页面中的计数,而不是跨页面的总计数。我必须更改分页逻辑?

尝试使用自定义筛选函数ng repeat array,然后根据条件筛选数组,这样您就不需要ng show plus,您将获得准确的计数

例1:

例2: ---控制器代码---

----Html代码--


  • {{person.id} - {{person.name}

为什么需要计算实际显示的行数?请尝试将显示隐藏逻辑移动到自定义筛选器或组件控制器。然后传递给ng repeat的列表将被过滤,因此您可以使用
lenght
属性来显示它。@TimBiegeleisen@emtei因为我使用分页,所以计数将仅为该单个页面中的计数,而不是跨页面的总计数。我必须更改分页逻辑。有关详细信息,请查看编辑。谢谢。请检查问题的编辑部分。您好,您的分页计数将取决于您所拥有的数据以及为其设置的限制。您能否告诉我,为什么要对所有数据元素进行完整的分页计数,即使您只想显示满足条件的数据?如果我有100个值,且每页显示10个值,而不进行过滤,则总计数应显示100。但是当应用过滤时,它应该显示70(例如)。如果我尝试使用{results.length},它只会给出总计数为10,因为这是该页面中呈现的行数。这是因为您已将所有筛选值分配给数组,所以在同一时间,它仅根据限制“results=(values | filter:myFilter('filter_field',chekVal)”显示10尝试打印整个阵列,您将只收到10个元素,使用您使用的过滤器方式。尝试使用“ng repeat start=“结果中的行| filter:myFilter('filter_field',chekVal)”或检查语法进行过滤
<tr ng-repeat-start ="row in results = (values | filter:myFilter('filter_field',chekVal)"> 
<td></td> 
</tr>
{{results.length}}
 $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"
 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;
            }
        };
    }
 <div ng-app>
        <div ng-controller="MyCtrl">
           <ul>
               <li ng-repeat="person in people | filter:myFilter">
                   {{person.id}}
                   -
                   {{person.name}}
               </li>
           </ul>
        </div>
    </div>