javascript - Angular 2 中带有子菜单的动态菜单

标签 javascript html css angular

我有一些以下格式的 JSON。当 sub-menu_location 不等于 null 时,我需要将其转换为带有子菜单的菜单,如下所示 Menu bar in image

{
  "data": [
    {
      "menu_name": "Primary Operations",
      "enabled": true,
      "sub-menu_location": null
    },
    {
      "menu_name": "Curated Games",
      "enabled": false,
      "sub-menu_location": null
    },
    {
      "menu_name": "Cricket",
      "enabled": false,
      "sub-menu_location": "outdoor"
    },
    {
      "menu_name": "football",
      "enabled": false,
      "sub-menu_location": "outdoor"
    },
    {
      "menu_name": "Hockey",
      "enabled": false,
      "sub-menu_location": "outdoor"
    }
  ]
}

最佳答案

有几点需要注意:

  • 您在问题中提供的示例数据只允许一个子菜单项。
  • 我不知道你想如何显示这个,但从图片上我猜是 Bootstrap。
  • 我认为 Bootstrap 默认不支持下拉子项,所以我将使用 this codepen example 中的语法

可能的解决方案

如果您将 data 对象存储为组件中的属性,则以下模板应该为您提供了一些开始的东西:

<li>
  <a class="dropdown-toggle" data-toggle="dropdown">Menu<b class="caret"></b></a>
  <ul class="dropdown-menu multi-level">
    <li *ngFor="let menuItem of data" class="dropdown-submenu">
      <a href="#" class="dropdown-toggle" data-toggle="dropdown">{{menuItem.menu_name}}</a>
      <ul *ngIf="menuItem.sub-menu_location" class="dropdown-menu">
        <li><a href="#">{{menuItem.sub-menu_location}}</a></li>
      </ul>
    </li>
  </ul>
</li>

关于javascript - Angular 2 中带有子菜单的动态菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45243074/

相关文章:

javascript - Backbone.LocalStorage 不是函数

php - 有很多 div 的奇怪线条

javascript - 在 phonegap 中使用 css html 的标签

html - 3列2行响应2列3行

Javascript 函数包装失败?

javascript - Highstock 日期时间 xAxis,只能显示全部。没有变焦

html - 没有空格时如何将文本溢出更改为省略号

php - 我如何定制像这样的大型 Facebook 和 Twitter 分享按钮?

javascript - 当 firebase 更新时,React 组件不会更新

javascript - Web Push 重新订阅 push manager chrome