i need create list of files , folders json object. folder structure can go deep in example have nested 3 levels. eg:
- files
- folder
- files
- subfolder
- files
- subsubfolder
- files
here sample json:
{ "list": [ { "id": 0, "files": [ { "name": "test-1.docx", "id": 80 }, { "name": "test-2.docx", "id": 81 } ], "folders": [ { "name": "folder top level", "folders": [ { "name": "folder sub level", "folders": [ { "name": "folder sub sub level", "folders": [], "files": [ { "name": "test-7.docx", "id": 87 }, { "name": "test-8.docx", "id": 88 } ] } ], "files": [ { "name": "test-5.docx", "id": 85 }, { "name": "test-6.docx", "id": 86 } ] } ], "files": [ { "name": "test-3.docx", "id": 83 }, { "name": "test-4.docx", "id": 84 } ] } ] } ] } given don't know how many levels json can go, how structure ng-repeat?
<div> <ol ng-model="list"> <li ng-repeat="file in list.files">{{file.name}}</li> <li ng-repeat="folder in list.folders"> {{folder.name}} <ol ng-model="folder.folders"> <li ng-repeat="folder in folder.folders" ng-if="folder.folders.length > 0"> {{folder.name}} </li> <li ng-repeat="file in folder.files" ng-if="folder.files.length > 0"> {{file.name}} </li> </ol> </li> </ol> </div> is there better way this?
thanks links, helpful. in end did trick.
<script type="text/ng-template" id="field_renderer.html"> <ol ng-model="folder.folders"> <strong>{{folder.name}}</strong> <ol><li ng-repeat="file in folder.files">{{file.name}}</li></ol> <li ng-repeat="folder in folder.folders" ng-include="'field_renderer.html'"></li> </ol> </script> <ol ng-model="list"> <li ng-repeat="folder in list" ng-include="'field_renderer.html'"></li> </ol>
Comments
Post a Comment