使用 ng-repeat 创建多级列表

2024-01-06

我正在尝试从包含嵌套数据的对象创建多级列表:

function linksRarrange($scope) {
    $scope.links = [
        {
            text: 'Menu Item 1',
            url: '#',
        },{
            text: 'Menu Item 2',
            url: '#',
            submenu: [
                {
                    text: 'Sub-menu Item 3',
                    url: '#',
                },{
                    text: 'Sub-menu Item 4',
                    url: '#',
                    submenu: [
                        {
                            text: 'Sub-sub-menu Item 5',
                            url: '#',
                        },{
                            text: 'Sub-sub-menu Item 6',
                            url: '#',
                        }
                    ]
                }
            ]
        },{
            text: 'Menu Item 3',
            url: '#',
        }
    ];
}

为什么只输出前两级菜单而忽略第三级菜单?

<ul>
    <li ng-repeat="link in links"><a href="{{link.url}}">{{link.text}}</a>
        <ul>
            <li ng-repeat='sublink in link.submenu'><a href="{{sublink.url}}">{{sublink.text}}</a></li>
        </ul>
    </li>
</ul>

您只看到两个级别,因为您只有两个级别的循环: ng-repeat 只是重复给定的内容,并且不会递归地调用自身。

您的第一个循环仅在第一个级别上重复,第二个循环仅在第二个级别上重复。您的代码中没有任何内容寻找第三级或任何更深的级别。

您可以递归地调用相同的 ng-include ,这似乎有效。我在这里用 plunker 演示了这个:http://plnkr.co/edit/NBDgqKOy2qVMQeykQqTY?p=preview http://plnkr.co/edit/NBDgqKOy2qVMQeykQqTY?p=preview

但是使用 ng-init 复制值的代码非常糟糕。它有效,但可能最好将其编写为指令。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 ng-repeat 创建多级列表 的相关文章

随机推荐

  • 如何在 JavaScript 中过滤 JSON 对象?

    我有以下 JSON 字符串 Alarm Hello 48 World 3 Orange 1 Rapid Total 746084 Fake 20970 Cancel 9985 Word 2343 Flow Support 746084 Ab
  • Zend_Db 子查询

    我一直在尝试使用 ZendFW 构建一个 sql 查询 但我似乎无法让它像我想要的那样运行 或根本无法运行 这是我尝试使用 zend db select 构建的有效查询 SELECT tc trip title td ID td trip
  • 使用 /etc/fstab 自动挂载多个 s3fs 存储桶

    在 s3fs 指令 wiki 中 我们被告知可以通过输入以下行来自动挂载 s3fs 存储桶 etc fstab s3fs mybucket mnt mybucket fuse allow other use cache tmp url ht
  • 选中/取消选中 - ifChecked 不起作用

    更新 我正在使用以下内容plugin https github com fronteed icheck 我试图检查当用户刷新页面或重新加载页面时是否选中了该复选框 这是我使用过的 但我已经完成了调试 但它从未执行second IF状况 in
  • UIImageView 内存泄漏?

    我执行了以下步骤 在 Xcode 中创建基于视图的 iPad 应用程序 打开 xib文件 添加一个UIImageView 为其设置一个图像 200x100图像 通过 运行 gt 使用性能工具运行 gt 泄漏 来启动程序 据报道有两处泄漏 L
  • 有什么方法可以在启动 Firefox/Chrome 后自动启动 Firebug/Inspector 吗?

    有什么办法可以让 Chrome 启动后自动启动 Inspector 吗 有什么办法可以让Firefox启动后自动启动Firebug吗 Regards Javi 在 Firefox 中 您可以通过打开将 Firebug 设置为始终打开关于 配
  • Anaconda 从另一个环境导入包

    我从另一台机器导入了 anaconda 环境 我想将导入环境中的软件包安装到根目录中或将导入环境设置为默认环境 有什么办法吗 1 将所有包从一个环境导入到另一个环境 或者 2 使用非root环境作为默认环境 注意 这两个环境均适用于 pyt
  • 防止 C# 应用程序终止进程

    如何保护我的 C 应用程序不被其他人通过任务管理器或以编程方式杀死其进程 这是我的场景 应用程序A是另一个团队开发的MFC应用程序 它有一个未发布的基于文本的远程界面 可通过后门启用 我正在开发应用程序 B 这是一个与 A 交互的 C Wi
  • ZEND 货币符号显示 1

    我正在使用 zendcurrency 根据区域设置显示货币 当我使用以下代码时 符号会被 1 替换 而不是简单地被删除 currency new Zend Currency locale currency gt setFormat arra
  • 在JavaScript中,有没有更简单的方法来检查属性的属性是否存在?

    有没有一种简单的方法可以本地确定 JavaScript 对象中是否存在深层属性 例如 我需要访问这样的属性 var myVal appData foo bar setting 但 foo foo bar 或 foo bar setting
  • 如何保证junit测试的质量?

    是否有经过验证的方法来验证 junit 测试或集成测试的质量 您的业 务分析师是否应该检查单元测试的准确性 或者还有其他方法吗 在传统的代码优先环境中 同行或领导会审查测试计划 但是自动化测试怎么样 我在看这个堆栈溢出 https stac
  • 如何在 Swift 3.0、ios 中使用 sender.titleForState(.Normal) 获取按钮的当前标题!

    我试图得到title of a button像下面这样快速 IBAction func buttonAction sender Any let buttonTitle sender titleForState Normal 但它没有用 即使
  • 使用Spring和XML配置文件时如何调用BeanFactoryPostProcessor.postProcessBeanFactory方法?

    我有一个配置文件beans xml
  • OpenCV 通过 NuGet 包与 Visual Studio 2015 一起使用,如何配置?

    我正在尝试通过 NuGet 包与 Visual Studio 2015 一起使用 OpenCV 但似乎无法配置所有内容 我不确定我是否在某个地方犯了错误或者我正在尝试的内容不受支持 一些背景知识 我不久前制作了本教程 https www y
  • 通过 CDN 提供受保护的资产

    我们希望从少数可用的 AWS 区域提供大量视频文件 目标受众来自全球多个地点 无法保证连接速度 所以 CDN 最好是 CloudFront 是绝对需要的 这些视频需要受到保护 因此只有在用户经过身份验证并被授权观看这些视频时才能播放 显然
  • 有没有动态生成sql的标准方法?

    我想问其他程序员如何生成动态 SQL 字符串以作为 SQLCommand 对象的 CommandText 执行 我正在生成包含用户生成的 WHERE 子句和 SELECT 字段的参数化查询 有时查询很复杂 我需要对不同部分的构建方式进行大量
  • 为什么 Android Studio 模拟器在启动时出现帧缓冲区错误?

    我使用的是 Windows 7 电脑 当我在命令行上从 Android Studio 运行 Android 模拟器时 出现以下错误 Failed on eglChooseConfig Could not initialize emulate
  • Linux postfix/dovecot 554 中继访问被拒绝

    我有这个错误554 Relay access denied当我尝试从我的 Outlook 客户端发送电子邮件时 我可以阅读收到的邮件 但无法发送 如果我连接 telnet localhost 25 我可以发送外部电子邮件 但使用 Outlo
  • 从 Jersey REST 客户端调用时出现 405 错误代码

    我正在请求 put 操作 在执行请求后 我重定向到 GET 服务 URL 在这里 我面临 405 HTTP 错误代码的问题 但是 在 POST 操作的情况下 相同的代码适用于我 下面的代码是端点 PUT Produces MediaType
  • 使用 ng-repeat 创建多级列表

    我正在尝试从包含嵌套数据的对象创建多级列表 function linksRarrange scope scope links text Menu Item 1 url text Menu Item 2 url submenu text Su