如何使用无限 JSON - Angular 8 绑定树结构 UI
How do I bind the tree structure UI using endless JSON - Angular 8
我有一个 JSON 结构。它包含每个对象的子数组。某些子数组有时可能有值。
我的问题是如何使用以下 JSON 创建树视图:
this.fileList = [
{
"name": "New Folder1",
"children": [
{
"name": "New Folder4",
"children": [
{
"name": "New File",
"children": []
},
{
"name": "New File",
"children": []
}
]
},
{
"name": "New Folder7",
"children": []
}
]
},
{
"name": "New Folder2",
"children": [
{
"name": "File1",
"children": []
}
]
},
{
"name": "New Folder3",
"children": [
{
"name": "New Folder5",
"children": [
{
"name": "New File",
"children": []
},
{
"name": "New File",
"children": []
}
]
}
]
},
{
"name": "File1",
"children": []
}
]
我的最终输出应该像这样显示在我的屏幕上。 (注意:那些arraow,equals等不是强制性的。它只是你的参考。我只需要树视图,没有任何material。我需要通过使用其他一些条件的ngFor,ngIf来实现包括 CSS).
->Folder A
=>Folder B
--Folder C
--Folder D
=>Folder E
--Folder F
->Folder G
=>Folder H
--Folder I
->Folder J
=>Folder K
=>Folder L
我希望你们明白我想要什么。请帮我解决这个问题。提前致谢:)
在Angular中可以使用模板引用来实现这个嵌套视图。例如,这里是代码片段:
<ng-template #folderTemplate let-folder>
<-- BIND DATA OF FOLDER OBJECT-->
<div *ngIf="folder.children" class="children-folder">
<!-- Invoke the recursive template. -->
<ng-template [ngTemplateOutlet]="folderTemplate"
[ngTemplateOutletContext]="{ $implicit: folder.children }">
<!--
HACK: The "$implicit" property of the ngFor context is what will
be made available to the template ref's implicit let-query binding.
-->
</ng-template>
</div>
</ng-template>
<ng-template [ngTemplateOutlet]="folderTemplate" [ngTemplateOutletContext]="{ $implicit: rootFolderObject }">
</ng-template>
此处 rootFolderObject 将是您在每个子项出现时的主要数据集,模板引用将被填充。您可以迭代子嵌套列表并将 foldetTemplate 中的数据与 folder 对象绑定。
我有一个 JSON 结构。它包含每个对象的子数组。某些子数组有时可能有值。
我的问题是如何使用以下 JSON 创建树视图:
this.fileList = [
{
"name": "New Folder1",
"children": [
{
"name": "New Folder4",
"children": [
{
"name": "New File",
"children": []
},
{
"name": "New File",
"children": []
}
]
},
{
"name": "New Folder7",
"children": []
}
]
},
{
"name": "New Folder2",
"children": [
{
"name": "File1",
"children": []
}
]
},
{
"name": "New Folder3",
"children": [
{
"name": "New Folder5",
"children": [
{
"name": "New File",
"children": []
},
{
"name": "New File",
"children": []
}
]
}
]
},
{
"name": "File1",
"children": []
}
]
我的最终输出应该像这样显示在我的屏幕上。 (注意:那些arraow,equals等不是强制性的。它只是你的参考。我只需要树视图,没有任何material。我需要通过使用其他一些条件的ngFor,ngIf来实现包括 CSS).
->Folder A
=>Folder B
--Folder C
--Folder D
=>Folder E
--Folder F
->Folder G
=>Folder H
--Folder I
->Folder J
=>Folder K
=>Folder L
我希望你们明白我想要什么。请帮我解决这个问题。提前致谢:)
在Angular中可以使用模板引用来实现这个嵌套视图。例如,这里是代码片段:
<ng-template #folderTemplate let-folder>
<-- BIND DATA OF FOLDER OBJECT-->
<div *ngIf="folder.children" class="children-folder">
<!-- Invoke the recursive template. -->
<ng-template [ngTemplateOutlet]="folderTemplate"
[ngTemplateOutletContext]="{ $implicit: folder.children }">
<!--
HACK: The "$implicit" property of the ngFor context is what will
be made available to the template ref's implicit let-query binding.
-->
</ng-template>
</div>
</ng-template>
<ng-template [ngTemplateOutlet]="folderTemplate" [ngTemplateOutletContext]="{ $implicit: rootFolderObject }">
</ng-template>
此处 rootFolderObject 将是您在每个子项出现时的主要数据集,模板引用将被填充。您可以迭代子嵌套列表并将 foldetTemplate 中的数据与 folder 对象绑定。