Я пытаюсь создать древовидную таблицу, используя обычную таблицу html.
{
"policy": [
{
"id": "a1",
"name": "policy 1.1",
"categories": [
{
"id": "c1",
"name": "category 1.1",
"subCategories": [
{
"id": "s1",
"name": "subCategory 1.1"
},
{
"id": "s2",
"name": "subCategory 1.2"
}
]
},
{
"id": "c2",
"name": "category 1.2",
"subCategories": [
{
"id": "s5",
"name": "subCategory 2.1"
},
{
"id": "s6",
"name": "subCategory 2.2"
}
]
}
]
},
{
"id": "a2",
"name": "policy 1.2",
"categories": [
{
"id": "c4",
"name": "category 1.1",
"subCategories": [
{
"id": "s13",
"name": "subCategory 1.1"
}
]
},
{
"id": "c5",
"name": "category 1.2",
"subCategories": [
{
"id": "s17",
"name": "subCategory 2.1"
},
{
"id": "s18",
"name": "subCategory 2.2"
}
]
},
{
"id": "c6",
"name": "category 1.3",
"subCategories": [
{
"id": "s21",
"name": "subCategory 3.1"
}
]
}
]
}
]
}
Я не хочу использовать какую-либо библиотеку.
ts файл:
getAllAuditPolicies() {
this.policyService
.getAllPolicies()
.subscribe(data => {
this.dropdownData = data;
});
}
, чтобы открыть категорию
open(i){
this.dropdownData1 = this.dropdownData[i].categories;
console.log("dataas1", this.dropdownData1);
}
, чтобы открыть подкатегорию
subOpen(j){
this.dropdownData2 = this.dropdownData1[j].subCategories;
console.log("dataas2", this.dropdownData2);
}
HTML файл:
<div class="container">
<div class="row">
<table class="table">
<tr class="panel-heading bgOrg">
<th class="th-font"> </th>
<th class="th-font">Name</th>
</tr>
<tr *ngFor='let data of dropdownData; let i=index' (click)="open(i)" >
<td >+</td>
<td>{{data.name}}</td>
</tr>
<tr *ngFor='let group of dropdownData1; let j=index' (click)="subOpen(j)">
<td>+</td>
<td>{{group.name}}</td>
</tr>
<tr *ngFor='let subgroup of dropdownData2; let k=index' >
<td>+</td>
<td>{{subgroup.name}}</td>
</tr >
<tr></tr>
</table>
</div>
</div>
При использовании этого метода в таблице отображаются подробности.
Проблема :
, но категории policy1.1 - это категория 1.1 и category1.2.it должен отображаться ниже policy1.1 как вложенный. Но если я нажму на policy1.1, в Таблице будут показаны значения ниже policy1.2 (Расширение значений policy1.1 ниже всех политик).
Та же проблема затрагивает подкатегории. Для реализации присоединения эталонного стекаблица,
stackblitz
Что я хочу сделать для решения этой проблемы.
Кто-нибудь может мне помочь ??
Заранее спасибо