9

我正在尝试使用 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。

我看到的相关问题的唯一解决方案(如何在没有 html 元素的情况下使用 ng-repeat)是拥有多个 tbody 元素;我不想那样做,但即使我这样做,给 tbody ng-repeat 和 ng-switch 属性,我仍然有一个问题,我不能在单个 ng-switch-when 中包装多个 tr .

有没有办法在 AngularJS 中做到这一点,或者这是不可能的?

4

2 回答 2

2

我遇到了这个问题,最好的建议是不要使用表:

只需使用 * 数量的子 div 类做一个父 div id,就像它们是 tr's 和 td's ...

我没有在角度源中检查过这个,但我假设表格元素没有以某种方式交织在一起,谁知道..

于 2013-01-27T14:45:14.033 回答
1

也许最好的选择是根据您的 type1/type2 生成适当标记的指令?

你也可以用 ng-hide/ng-show 来做,虽然这会产生额外的不必要的标记

于 2013-01-28T19:45:44.660 回答