Javascript 嵌套表,三层。(孙辈们怎么办?)
我有一个三级数据结构(父、子、孙),看起来像这样:Javascript 嵌套表,三层。(孙辈们怎么办?),javascript,angularjs,Javascript,Angularjs,我有一个三级数据结构(父、子、孙),看起来像这样: $scope.data = [ { ID: '1', Title: 'Parent Titile 1', children: [ { ID: '1.1', Title: 'Child Title 1.1', children: [ {ID: '1.1.1', Title: 'grandchild title 1.1.1'} ] }, { ID: '1.2', Title: 'Child Ti
$scope.data = [
{ ID: '1', Title: 'Parent Titile 1', children: [
{ ID: '1.1', Title: 'Child Title 1.1', children: [
{ID: '1.1.1', Title: 'grandchild title 1.1.1'}
]
},
{ ID: '1.2', Title: 'Child Title 1.2', children: [
{ID: '1.2.1', Title: 'grandchild title 1.2.1'}
]
},
]
},
{ ID: '2', Title: 'Parent Titile 2', children: [
{ ID: '2.1', Title: 'Child Title 2.1', children: [
{ID: '2.1.1', Title: 'grandchild title 2.11'}
]
}
]
}
];
使用我成功地将此结构显示为两个级别,我想在不使用智能表的情况下它是相同的,但我就是这样做的:
<table st-table="displayedCollection" st-safe-src="safeCollection" class="table table-bordered table-hover">
<thead>
<tr>
<th></th>
<th>#ID</th>
<th>Title</th>
</tr>
</thead>
<tbody ng-repeat="row in displayedCollection">
<tr>
<td> <span ng-class="{'fa fa-plus fa-fw': !row.isCollapsed, 'fa fa-minus fa-fw': row.isCollapsed}"></span> </td>
<td ng-click="row.isCollapsed = !row.isCollapsed"> {{row.ID}}</td>
<td> {{row.Title}} </td>
</tr>
<tr uib-collapse="!row.isCollapsed" ng-repeat="child in row.children">
<td></td>
<td> {{child.ID}} </td>
<td> {{child.Title}} </td>
</tr>
</tbody>
#身份证
标题
{{row.ID}}
{{row.Title}}
{{child.ID}
{{child.Title}
如您所见,我使用了两个
,其中一个迭代每行中的子项
因此,这将显示一个表,其父表上有ng repeat,其子表上有另一个ng repeat,使用我能够用指令隐藏子表,并在单击父表时显示它们,有点像树视图
我不能做的是显示第三级(孙子)。我不能简单地创建另一个
并转到ng repeat=“行中的孙子.孩子.孩子”
我怎样才能像展示孩子一样展示孙子孙女呢
编辑:使用一个有效的两级示例
obs!我不擅长头衔,如果你能想出一个更合适的,请现在就告诉我,让人们理解
编辑2:多亏了对ng repeat start
和ng repeat stop
的解释,我在某种程度上做到了我想要的。。我觉得这变得非常复杂,它给了我一个额外的
来结束重复
和工作的孙子们在一起
在这个版本中,孙子孙女不会在他们的父母崩溃时崩溃,他们应该这样做,但这是另一个问题
尽管如此,我觉得这不是最佳解决方案,因此我仍在寻找更好的方法来实现这一点这是一种显示三个级别的简单方法:
<div ng-repeat="row in displayedCollection">
<span>{{row.ID}}</span>
<div ng-repeat="child in row.children">
<span>{{child.ID}}</span>
<div ng-repeat="grandchild in child.children">
<span>{{grandchild.ID}}</span>
</div>
</div>
</div>
{{row.ID}}
{{child.ID}
{{grander.ID}
您并不是从一个好的方向来实现这一点的。在一张桌子上有多个tbody这是违背其目的的。尝试使用嵌套的div而不是表。通过这种方式,您可以根据需要进行任意级别的操作。@MihaiRăducanu我将研究这种方法,但我喜欢这个解决方案(到目前为止),我认为它看起来不错,至少有两个级别。nvm。。通过添加对行的检查,解决了孙辈崩溃问题。在孙辈级别,isCollapsed
,trIt可以工作,如果无法使表工作,我可能会使用它,但我希望使用表(精确地说是智能表)提供的一些函数,因此我必须继续尝试。感谢您的帮助,在2级表中表示3级数据可能会很困难(二维)