如何在不使浏览器崩溃的情况下显示未知长度的嵌套数组?

How do I show an unknown length nested array without crashing the browser?

我有一个巨大的数组,组织起来有点像这样:

[{ name: 'name1',
   nodes: []},
 { name: 'name2',
   nodes: [
    { name: 'name21',
      nodes: [
        { name: 'name211',
          nodes: []},
        { name: 'name212',
          nodes: []}]
    }]
 },
 { name: 'name3',
   nodes: [...] },
 {...}
]

然后继续...

我试过用这样的东西:

<script type='text/ng-template', id='categoryTree'>
   <p ng-if='!node.nodes'> {{node.name}} </p>
   <details ng-if='node.nodes'>
       <summary><b> {{node.name}}</b></summary>
       <ul>
           <span ng-repeat="node in node.nodes" ng-include="'categoryTree'"></span>
   </details>
</script>

<div>
   <ul>
       <span ng-repeat="node in objArray" ng-include="'categoryTree'"></span>
</div>

这给了我想要的以树格式显示所有嵌套数组的功能。问题是它似乎陷入了无限循环,因为当我查看任务管理器时,使用的 RAM 开始增加并且仅在 Chrome 崩溃时停止。

有谁知道我该如何解决这个问题?或者即使我有更好的方法来做这个树视图?

Angular 不真正处理递归指令 - 默认情况下

但有一个解决方案:

https://github.com/marklagendijk/angular-recursion

你真正需要的是在渲染父元素时临时移除嵌套元素。