我的网页上有一个表格,其中填充了以下数据:
<tr data-ng-repeat="row in grid.data | filter:isQuestionInRange">
<td>{{ row.problemId }}</td>
</tr>
有没有办法可以计算表格页脚中显示的行数。请注意,我希望能够显示之后的行,而不仅仅是grid.data数组中的行计数。
答案 0 :(得分:22)
您可以存储过滤器的结果,然后获取其长度,例如使用results
:
<tr data-ng-repeat="row in results = (grid.data | filter:isQuestionInRange)">
<td>{{ row.problemID }}</td>
</tr>
{{results.length}}
这具有仅需要运行一次过滤器的性能优势。对于在ng-repeat
中需要过滤和未过滤结果的其他情况,它也很方便。
答案 1 :(得分:14)
您可以检查已过滤数组的长度,例如:
{{ (grid.data | filter:isQuestionInRange).length }}
答案 2 :(得分:0)
我建议您使用控制器中的$filter service,如this example plunk所示:
$scope.evenNumbers = $filter('filter')($scope.numbers, $scope.isEven);
在你的情况下:
var $scope.filteredRows = $filter('filter')($scope.gridData, $scope.isQuestionInRange);
这样,您只需进行一次过滤,并避免在模板中引入新的范围字段,这会使您的代码难以测试和理解。
您在模板中重复filteredRows
,{{ filteredRows.length }}
会为您提供可见行数。