javascript - Angular,ng-repeat 与某种递归搜索

标签 javascript angularjs

我有一个奇怪的问题要解决。我知道如何解决它,但我当然愿意接受任何建议或我可以采取的其他方向,因为我不完全确定这是正确的路线。

我想要做的是有一个 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/

相关文章:

angularjs - 在 angularJS 中使用多个复选框进行过滤

javascript - 使用 JavaScript 将文本从一个文本框发送到另一个文本框

javascript - 如何使用 Restangular 停止错误链接请求?

javascript - 如何使用 AJAX 发送 POST 数据?以及如何在 Web API 中获取 POST 数据?

javascript - 为什么在回调中声明一个 var 会取消定义参数? (吊装)

javascript - 如何在 Angular/Meteor 中有条件地显示 ng-repeat 内的按钮

angularjs - 如何清除 $localStorage

javascript - 如何在 Angular Js 中制作粘性标题?

javascript - Zombie.js 和写入窗口的脚本

javascript - 给出新值时重写字符串