查看树折叠和展开模式
使用的标记是HTML表格。
使用ng-repeat变得棘手。
每行的数据如下
{
"id": 1,
"name": "Groceries",
"price": "0",
"total": "20",
"parentFlag": "true",
"parentId": "",
childItems: [{},{}]
}
使用ul
和li
标记,我们可以使用ng-include实现此目的。
但现有的应用程序标记使用表格。我开始考虑更改标记以使用ul
,li
和div
是“唯一”的方法。我在这里错过了什么吗?任何指针/方法?
答案 0 :(得分:3)
您可以尝试以下内容:
<table class="table">
<thead>
<tr>
<th>Package</th>
<th>Price</th>
</tr>
</thead>
<tbody>
<tr ng-repeat-start='Package in Packages'>
<!-- take a look to ng-repeat-start -->
<td>
<button ng-click="viewChilds= !viewChilds">+</button>{{Package.name}}</td>
<td>{{Package.total}}</td>
</tr>
<tr>
<!-- this is repeated for package-->
<td colspan='2' ng-class="viewChilds? '' : 'hide'">
<!-- viewChilds controls the collapse () -->
<table class="subTable">
<!-- make some ident in subTable style -->
<tbody>
<tr ng-repeat='chilItem in Package.childItems'>
<!-- a nested repeat for each children -->
<td>{{chilItem.name}}</td>
<td>{{chilItem.price}}</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr ng-repeat-end></tr>
<!-- this is repeated also (if you need) -->
</tbody>
</table>
我怀疑你能搞清楚。不要忘记展示最后的作品。
答案 1 :(得分:1)
我使用简单的概念来实现这个表,只需将复杂的树数据结构更改为简单的一维数组,并使用有角度的重复数据重复此数组。此数组中的每个节点都包含父ID和级别信息,用于在适当的位置显示每个节点并正确缩进。例如
var treeDS = [ { name : aptitude, id : 123, childNodes : [ { name : time and work, id : 125 }, { name : problem on trains, id : 127 } ] } ]
将此树数据结构转换为以下一维数组
var oneDArray = [ { name : aptitude, id : 123, level : 0, indentClass : "indent-0", parentId : -1 }, { name : aptitude, id : 123, level : 0, indentClass : "indent-1" parentId : 123 }, { name : aptitude, id : 123, level : 0, indentClass : "indent-1", parentId : 123 } ]
此oneDArray包含在具有正确父子关系和缩进的表中显示树数据结构的所有信息。
级别:它将显示节点深度 indentClass:它将根据节点深度缩进行 parentId:它将有助于显示哪个节点必须显示在哪个节点下。