我正在尝试使用<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>
答案 0 :(得分:0)
您应该可以使用ng-repeat-start
和ng-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>