API, с которым я работаю, дает мне в ответ следующую структуру:
"data": [
{
"id": 5,
"name": "First name",
"parent": 0
},
{
"id": 1,
"name": "Second name",
"parent": 5
},
{
"id": 6,
"name": "Third name",
"parent": 1
},
{
"id": 15,
"name": "Fourth name",
"parent": 0
},
{
"id": 25,
"name": "Fifth name",
"parent": 5
}
]
Я хотел бы построить древовидную структуру вокруг этого, используя ngFor
, которая поддерживает неограниченное количество дочерних уровней.
Это то, что я пробовал до сих пор:
<div *ngFor="let d1 of _dataList">
<ul *ngIf="d1.parent == 0">
<li>
{{d1.name}}
<ul *ngFor="let d2 of _dataList">
<li *ngIf="d2.parent == d1.id">{{d2.name}}</li>
</ul>
</li>
</ul>
</div>
Это работает, но это уродливо, и мне приходится вручную повторять эти X-уровни вниз по данным и, таким образом, оставлять жестко закодированный предел.
Как можно оптимизировать этот код, чтобы он поддерживал неограниченное количество уровней и выглядел лучше?