【发布时间】:2014-06-02 13:21:38
【问题描述】:
我正在使用 Angular 并希望在 html 中显示这样的嵌套文件夹树:
<div id="tree">
<ul>
<li ng-repeat='folder in folderList' ng-include="'/templates/tree-renderer.html'" id="{{ folder.htmlId }}">
</li>
</ul>
</div>
在 tree-renderer.html 我有:
<a href='/#/folders{{ folder.link.href }}'>
<span>{{folder.name}}
<small>{{ folder.nbDocIn }}
</small>
</span>
</a>
<ul>
<li ng-repeat="folder in folder.children" ng-include="'/templates/tree-renderer.html'">
</li>
</ul>
由于每次修改某些内容时都需要完成一个 Rest 请求,我得到了结果,所以我希望我的以下代码更快。
我从 Rest 请求中收到这样的 json:
{
"key": "folder1"
},
{
"key": "folder2"
},
{
"key": "folder1/subFolder1"
},
{
"key": "folder2/subFolder2"
},
{
"key": "folder1/subFolder2"
},
{
"key": "folder2/subFolder2/subSubFolder2"
}
并不是说列表没有必要排序。 正如您在 html 中看到的,我现在需要将此列表转换为以下列表:
{
"key": "folder1",
"children": [{
"key": "folder1/subFolder1"
}, {
"key": "folder1/subFolder2"
}]
},{
"key": "folder2",
"children": [{
"key": "folder2/subFolder1",
"children": [{
"key": "folder2/subFolder1/subSubFolder2"
}]
}]
}
现在我需要两个递归函数来实现它,一个创建子数组,另一个将这些数组放入属性 children
我想做一个,你有什么想法吗?
【问题讨论】:
标签: javascript angularjs tree treeview