I am using angular and want to show a nested tree of folder like this in html :
<div id="tree">
<ul>
<li ng-repeat='folder in folderList' ng-include="'/templates/tree-renderer.html'" id="{{ folder.htmlId }}">
</li>
</ul>
</div>
And in the tree-renderer.html I have :
<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>
Since I get the result thanks to a Rest request which need to be done each time I modify something, I want the my following code to be fast.
I receive from the Rest request a json like this :
{
"key": "folder1"
},
{
"key": "folder2"
},
{
"key": "folder1/subFolder1"
},
{
"key": "folder2/subFolder2"
},
{
"key": "folder1/subFolder2"
},
{
"key": "folder2/subFolder2/subSubFolder2"
}
Not that the list is not necessary ordered. As you have seen in the html, I now need to transform this list to this one :
{
"key": "folder1",
"children": [{
"key": "folder1/subFolder1"
}, {
"key": "folder1/subFolder2"
}]
},{
"key": "folder2",
"children": [{
"key": "folder2/subFolder1",
"children": [{
"key": "folder2/subFolder1/subSubFolder2"
}]
}]
}
For now I need two recursive function to make it possible, one to create arrays of childrens and one to put those arrays into an attribute children
I would like to make just one, have you some ideas of how to make it ?