Angularjs ng表格行中重复开始-基于ng的计数显示为真
我有一个基于ng show显示内容的表格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,然后根据条件筛选数组,
<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>