Angularjs ng重复3+;深层层次
我想知道在多级结构中是否有一种合理的方法来重复。想象一下这样的数据Angularjs ng重复3+;深层层次,angularjs,angularjs-ng-repeat,nested-loops,Angularjs,Angularjs Ng Repeat,Nested Loops,我想知道在多级结构中是否有一种合理的方法来重复。想象一下这样的数据 顶 中间的 一, 二, 中间的 三, 四, 五, 顶 中间的 六, 中间的 七, 八, 九, 然后显示为HTML列表意味着N嵌套循环(对于固定的N,这很简单)。对于一个表来说,相同的方法不起作用,因为所有的必须在同一级别上。有一个,但它只保存一个级别 对于两个级别,使用ng repeat start/end即可实现简单操作。对于3个级别,我需要这样一个不可见的行。我想知道是否有一个干净的解决方案,以及如何将其扩展到4
- 顶
- 中间的
- 一,
- 二,
- 中间的
- 三,
- 四,
- 五,
- 顶
- 中间的
- 六,
- 中间的
- 七,
- 八,
- 九,
N
嵌套循环(对于固定的N
,这很简单)。对于一个表来说,相同的方法不起作用,因为所有的
必须在同一级别上。有一个,但它只保存一个级别
对于两个级别,使用
ng repeat start/end
即可实现简单操作。对于3个级别,我需要这样一个不可见的行。我想知道是否有一个干净的解决方案,以及如何将其扩展到4个级别(我真的希望我不需要5个级别)。您应该尝试将数据本身修改为更结构化,然后它就变得微不足道了。例如,4级数据结构
var data = [
{ name: 'level 1', values: [
{ name: 'level 2', values: [
{ name: 'level 3', values: [
{ name: 'level 4', values: [] }
]}
]}
]}
]
这是ng repeat的标记
<div ng-repeat="level1 in data">
<div ng-repeat="level2 in level1.values">
<div ng-repeat="level3 in level2.values">
<div ng-repeat="level4 in level3.values"></div>
</div>
</div>
</div>
希望这能有所帮助。解决方案其实很简单,只要从
<tr ng-repeat-start="x1 in list">
重复
<tr ng-repeat-end ng-repeat="x_n_plus_one in x_n">
根据需要进行多次,并以
<tr ng-repeat-end ng-if=0>
它确实不像嵌套循环,但是
也就是说,我想我宁愿将我的列表展平,因为这样可以更灵活、更清晰地处理空列表。对不起,您正在解决一个我没有的问题。您正在嵌套
div
s,但我的问题是tr
,因为它们不能嵌套。使用divs和一些css魔法,您可以获得与表相同的外观和感觉,有什么原因必须使用表吗?我真的想避免css魔法。有了一个表,我可以很容易地添加一个列或任何东西,这种神奇的方法会让它变得更难。此外,CSS和我不是朋友。如果有帮助,你可以在表中嵌套表。这意味着16层的深层层次结构(tr
,td
,table
,隐式tbody
)。但是我发现我想要的不是一个好主意。既然你没有陈述任何种类的东西,有没有理由你不能将数据转换成平面列表?你似乎不想纯粹为了显示的目的而将数据转换成表格?…@Jens当然,我可以转换,我想,这是最好的解决方案。该表应该是可编辑的(所有行都是双向绑定的),但这也可以通过平面列表来完成。这并不是说我认为它不能完成,通过稍微调整可以接近,但不够接近,最后我认为你会得到相当复杂的东西,因此容易出现更多错误。。。因此,我认为转换它将是理想的解决方案,因为它不那么复杂,因此更可能最终正确。@Jens:我想你是对的。。。尽管这个解决方案非常简单(见我自己的答案)。