我有一个奇怪的问题要解决。我知道如何解决它,但我当然愿意接受任何建议或我可以采取的其他方向,因为我不完全确定这是正确的路线。
我想要做的是有一个 ng-repeat 但让它显示对象(它是一个大对象)中位于“应用程序”键内的最低级别项目。
所以对象是这样设置的(我想指出,如果我不必过多更改此对象,因为它也在其他地方使用,那就太好了)这是对象内部的一项。
$scope.myObject = [{
name: 'Name1',
subs: [
{
name: 'Sub 1',
subs: [
{
name: 'Sub 1-1',
apps: [
{
name: 'App 1'
}
]
}
],
apps: [
{
name: 'App'
}
]
}
所以想法是 - 对象内的任何级别都可以有 subs 或 apps。 Subs 表示它内部有组,而 apps 数组是所需的最低级别。我的预期效果是能够重复 myObject 它只显示应用程序,顺序现在并不重要但我想遍历整个对象并拉出任何应用程序,无论它们有多深.
我可以使用一些指导来了解如何检索此对象内的所有应用程序,我们将不胜感激。谢谢!
编辑 1:
所以澄清一下,我正在寻找的最终结果是做一些类似 ng-repeat 的事情(同样它不一定是重复)并最终得到所有应用程序的列表,无论在哪里它们在对象中。
很喜欢-
<div ng-repeat="items in myObject" >
{{name}}
</div>
只会吐出 apps ,因此本示例中的 App 1 和 App 对象。
编辑 2:这是我的递归尝试
<div ng-repeat="item in myObject">
<div ng-repeat="subs in item.subs" ng-include="'subTracks.html'" >
<script type="text/ng-template" id="subTracks.html">
<div ng-repeat="app in subs.apps">
{{app.name}}
</div>
<div ng-repeat="subs in subs.subs" ng-include="'subTracks.html'" >
</div>
</script>
最佳答案
在重复之前,您需要将嵌套数组转换为平面数组。
您可以使用自定义 reduce
函数,或查看这篇文章 http://bost.ocks.org/mike/nest/
关于d3.nest
可以生成你需要的数组。
关于javascript - Angular,ng-repeat 与某种递归搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28219419/