2
Мне нужно создать список файлов и папок из объекта JSON. Структура папок может идти очень глубоко, но в моем примере у меня есть только вложенные 3 уровня. например:angularjs вложен ng-repeat для структуры папок
- Файлы
- Папка
- Файлы
- ПОДПАПКА
- Файлы
- subSubFolder
- Файлы
Вот некоторые примеры 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
}
]
}
]
}
]
}
Учитывая, что я не знаю, сколько уровней моя JSON может идти, как бы я структурировать нг-повтор ?
<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>
Есть ли лучший способ сделать это?
Google для угловой рекурсивной директивы, должны найти множество результатов – charlietfl
Посмотрите ответы [здесь] (http://stackoverflow.com/questions/18408496/looping-through-deep-objects-in-ng- повторение). – Manhattan
Например: [здесь] (http://stackoverflow.com/a/28077301/968155) или [здесь] (http://stackoverflow.com/a/15663410/968155) –