首先是背景:
我正在创建一个Web应用程序,它将在表格中同时在屏幕上显示多个报告。报告的存储方式位于各自的表中。截至目前,角度应用程序循环遍历已加载的报表,并将它们放置如下:
Group 1
Report1 Val1 Val2 Val3...
Report2 Val1 Val2 Val3...
ReportN Val1 Val2 Val3...
Group 2
Report1 Val1 Val2 Val3...
Report2 Val1 Val2 Val3...
ReportN Val1 Val2 Val3...
Group N
Report1 Val1 Val2 Val3...
Report2 Val1 Val2 Val3...
ReportN Val1 Val2 Val3...
我遇到的问题是某些报告对于给定的分组缺少一行,这使得整个表最终不匹配。我想知道的是,如果ngRepeat中有一个方法在循环时或多或少地跳过一行,只是将值放在各自的组中?
我能想到的唯一解决方案是在其他报告中手动插入空白行,以便它们始终具有匹配的尺寸,但如果角度有助于促进这一点,那就更好了,到目前为止Google已经屈服了没有结果。
作为参考,这是我当前生成代码的表:
<tbody>
<tr ng-repeat-start="row in loadedReports[0].data" ng-if="loadedReports.length > 1 && !loadedReports[1].empty">
<td ng-repeat="count in row track by $index" class="title" ng-show="$index > 12 - range || $first"><span ng-show="$first">{{ row[0] }}</span></td>
</tr>
<tr ng-repeat="report in $parent.loadedReports" ng-repeat-end>
<td ng-repeat="value in report.data[$parent.$index] track by $index" ng-class="{'title': $first && $parent.$parent.$last && ($parent.$parent.loadedReports.length === 1 || $parent.$parent.loadedReports[1].empty)}" ng-show="$index > 12 - range || $first">
<span ng-if="$parent.$parent.loadedReports.length > 1 && !$parent.$parent.loadedReports[1].empty && $first">{{ report.name }}</span>
<span ng-if="($parent.$parent.loadedReports.length === 1 && $first) || ($parent.$parent.loadedReports[1].empty) || $index > 12 - range">{{ value | numberFormat : report.dataType }}</span>
</td>
</tr>
</tbody>
编辑以澄清代码: