ng-repeat多个`<tr>`元素AngularJS

时间:2019-08-27 17:09:13

标签: javascript angularjs angularjs-ng-repeat

我正在尝试使用<tbody>遍历<tr np-repeat>中的对象数组,但是鉴于目前的情况和代码库,基本上我有条件地渲染某些<tr>基于相应对象中的某些键值对。在这种情况下,使用诸如ng-container这样的自定义包装器指令来包裹<tr>会很有帮助,但是我对Angular.js还是比较陌生,因此,如果有人对现有解决方案有所参考,我会启发自己从中创建自己的东西。谢谢!

我尝试使用ng-repeat-start / ng-repeat-end,但是它也不适合我的情况,因为它仅指定重复结束的位置,而我还需要指定重复结束的位置。到目前为止,我发现使用transclude创建指令可能是解决问题的方法,但我不确定如何实现。

控制器的东西

$scope.array = [{show: true}, {key: value}, {key: value}]

模板内容

<tbody>
  <custom-ng-container-directive ng-repeat="element in array">
    <tr ng-if="element.show">
      <td>some text</td>
      <td>more text</td>
    </tr>
    <tr ng-if="!element.show">
      <td>{{ element.key }}</td>
      <td>other text</td>
    </tr>
  </custom-ng-container-directive>
</tbody>

1 个答案:

答案 0 :(得分:0)

您应该可以使用ng-repeat-startng-repeat-end。请注意,您缺少<td></td>元素,并且将文本直接放在<tr></tr>中的HTML格式不正确。

<tbody>
    <tr ng-repeat-start="element in array" ng-if="element.show">
        some text
    </tr>
    <tr ng-repeat-end ng-if="!element.show">
      {{ element.key }}
    </tr>
</tbody>