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

我想知道在多级结构中是否有一种合理的方法来重复。想象一下这样的数据

    • 中间的
    • 一,
    • 二,
    • 中间的
    • 三,
    • 四,
    • 五,
    • 中间的
    • 六,
    • 中间的
    • 七,
    • 八,
    • 九,
然后显示为HTML列表意味着
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:我想你是对的。。。尽管这个解决方案非常简单(见我自己的答案)。