我正在尝试使用AngularJS创建一个事件列表表。但是每个事件都有一个类型,不同类型的事件具有截然不同的内容,有些类型也会生成多个行。
在一个完美的世界里,我会这样做:
<tbody>
<ng-repeat="event in events">
<ng-switch on="event.type">
<ng-switch-when="type1">
<tr>
...
</tr>
<tr>
...
</tr>
</ng-switch-when>
<ng-switch-when="type2">
<tr>
...
</tr>
</ng-switch-when>
...
</ng-switch>
</ng-repeat>
</tbody>
但这不起作用,因为大多数浏览器会丢弃或重新定位ng标签,以强制tbody只包含trs。
我见过的与相关问题(How to use ng-repeat without an html element)的唯一解决方案是拥有多个tbody元素;我宁愿不这样做,但即使我这样做,给tbody ng-repeat和ng-switch属性,我仍然有一个问题,我不能在一个ng-switch中包装多个trs-when
有没有办法在AngularJS中执行此操作,或者这是不可能的?
答案 0 :(得分:2)
我遇到过这个问题,最好的建议是不要使用表格:
只需使用* ammount的子div类进行父div,就像它们是tr和td一样......
我没有在角度来源中检查过这个,但我假设表格元素不是以某种方式交织在一起,谁知道..
答案 1 :(得分:1)
也许最好的选择是根据你的type1 / type2生成适当标记的指令?
您可能也可以使用ng-hide / ng-show进行此操作,但这会产生额外的不必要标记