【发布时间】:2014-06-06 23:26:18
【问题描述】:
我真的不知道如何简洁地描述我正在尝试做的事情,所以对于糟糕的标题感到抱歉。但是我有一张表,我想在其中交错不同类型的行。我有一行反映顶部的列,还有另一行跨越所有列以显示年份。
例如:
<table>
<thead>...</thead>
<tbody>
<tr>
<td>11/30/2013</td>
<td>Some Description</td>
<td>$1450.00</td>
...
</tr>
<tr>
<td>12/31/2013</td>
<td>Some Description</td>
<td>$1450.00</td>
...
</tr>
<tr colspan="9">2014</tr>
<tr>
<td>1/31/2014</td>
<td>Some Description</td>
<td>$1450.00</td>
...
</tr>
</tbody>
</table>
这是将所有数据放入表中的简单实现:
<table>
<thead>...</thead>
<tbody>
<tr ng-repeat="paycheck in paychecks">
<td>{{paycheck.payDate}}</td>
<td>{{paycheck.description}}</td>
<td>{{paycheck.amount}}</td>
...
</tr>
</tbody>
</table>
但是,当我遍历年度边界时,我想将这一行放在这些行之间:
<tr>
<td colspan="9" ng-if="paycheck.payDate.year > previousPaycheck.payDate.year">{{paycheck.payDate.year}}</td>
</tr>
这意味着当上述条件为真时,我必须在表中添加两行,但使用 ng-repeat 我只添加一个。我怀疑我必须重建我的数据结构,以便在其中插入年份边界,因此 ng-repeat 将是 1:1,表中的行和数组中的元素。或者也许一些特殊的指令魔法可以让这更容易。
有没有我看不到的简单方法?
【问题讨论】:
-
您能否发布一些工资单对象的示例数据
-
paychecks 中的数据对答案并不重要,因为它是一堆属性(其中一个是上图所示的日期),并且这些属性放在每一行的一系列列中.我在示例中包含了足够多的属性供您猜测数据的样子。
标签: angularjs angularjs-ng-repeat