在嵌套的AngularJS重复中跳过迭代

时间:2015-05-11 23:03:30

标签: angularjs multidimensional-array angularjs-ng-repeat

首先是背景:

我正在创建一个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>

编辑以澄清代码:

  • 范围只是屏幕上的一个控件,允许显示一行中最多13个存储值,最少2个。
  • data是一个二维数组,其中包含数据集中每个组的行

0 个答案:

没有答案