7

我的网页上有一个表格,其中填充了如下数据:

<tr data-ng-repeat="row in grid.data | filter:isQuestionInRange">
   <td>{{ row.problemId }}</td>
</tr>

有没有一种方法可以计算表页脚中显示的行数。请注意,我希望能够显示过滤后的行,而不仅仅是来自 grid.data 数组的行数。

4

3 回答 3

22

您可以存储过滤器的结果,然后获取其长度,例如results在此处使用:

<tr data-ng-repeat="row in results = (grid.data | filter:isQuestionInRange)">
   <td>{{ row.problemID }}</td>
</tr>
{{results.length}}

这具有只需要运行一次过滤器的性能优势。对于需要在ng-repeat.

于 2013-11-13T14:44:30.797 回答
14

您可以检查过滤数组的长度,例如:

{{ (grid.data | filter:isQuestionInRange).length }}
于 2013-11-13T14:22:00.870 回答
0

我建议您在控制器中使用$filter 服务,如本示例 plunk所示:

$scope.evenNumbers = $filter('filter')($scope.numbers, $scope.isEven);

在你的情况下:

var $scope.filteredRows = $filter('filter')($scope.gridData, $scope.isQuestionInRange);

这样,您只需进行一次过滤,并避免在模板中引入新的范围字段,这会使您的代码难以测试和理解。

filteredRows您在模板中重复并{{ filteredRows.length }}为您提供可见行数。

于 2013-11-26T14:03:28.667 回答