我的代码正在运行,但我想知道是否有更好的方法将空行注入表中(仅用于外观)。 这看起来有点多余,但找不到合适的例子如何做得更好。 我现在的代码:
<tr class="{{row.class}}" ng-repeat="row in someList | filter:{class:'special'}">
<td>{{row.name}}</td>
</tr>
<!-- empty row -->
<tr>
<td> </td>
</tr>
<tr class="{{row.class}}" ng-repeat="row in someList | filter:{class:'other'}">
<td>{{row.name}}</td>
</tr>
<!-- empty row -->
<tr>
<td> </td>
</tr>
<tr class="{{row.class}}" ng-repeat="row in someList | filter:{class:'final'}">
<td>{{row.name}}</td>
</tr>
答案 0 :(得分:2)
我为您提供了两种不同的解决方案:
orderBy
您可以使用单个ng-repeat
以orderBy:'class'
的正确顺序显示所有行:
<table>
<tr class="{{row.class}}" ng-repeat="row in someList | orderBy:!'class'">
<td>{{row.name}}</td>
</tr>
</table>
在CSS的帮助下,您可以在三个部分之间添加一些视觉空间:
.other td, .final td{
padding-top:1em;
}
.other ~ .other td, .final ~ .final td{
padding-top:0px;
}
您可以在this plunker
中查看结果groupBy
模块<{h}>的<tbody>
的纯angularJS
对于此解决方案,您需要将每个块包装到ng-repeat
中,以便使用嵌套的<tbody>
。您可以设置<table>
<tbody ng-repeat="(key, value) in someList | groupBy:'class'">
{{key}}
<tr class="{{key}}" ng-repeat="row in value">
<td>{{row.name}}</td>
</tr>
<tr ng-if="key != 'final'"><td> </td></tr>
</tbody>
</table>
标记的样式以在其间留一些空格,也可以添加一个空行,如下所示。您可以有条件地隐藏此行以删除表末尾的空行。
{{1}}