代码之家  ›  专栏  ›  技术社区  ›  vedankita kumbhar

四角导航手风琴

  •  0
  • vedankita kumbhar  · 技术社区  · 7 年前

    我想用Angular 4中的json对象创建嵌套菜单。我写了以下代码。

    <div id="panel-group">
      <div class="panel panel-default" *ngFor="let mainItem of objectKeys(my_menu); let i = index">
        <div class="panel-heading" (click) = "current = i">
          <h5 class="panel-title">{{ mainItem }}</h5>
        </div>
         <div id="collapse1" class="panel-collapse" [class.collapse]='current != i'>
          <div class="panel-body">
            <ul>
              <li *ngFor="let subItem of my_menu[mainItem]"><a href="#">{{ subItem }}</a></li>
            </ul>
          </div>
        </div>
      </div>
    </div>
    
    import { Component } from '@angular/core';
    
    @Component({
      selector: 'my-app',
      templateUrl: './app.component.html',
      styleUrls: [ './app.component.css' ]
    })
    export class AppComponent  {
      name = 'Angular';
      current: number = 0;
      items: Array<any>;
    
      objectKeys = Object.keys;
       my_menu = {
        'Menu 1': ['Sub Menu 1', 'Sub Menu 2'],
        'Menu 2': ['Sub Menu 1', 'Sub Menu 2', 'Sub Menu 3'],
        'Menu 3': []
      };
    }
    

    这是我的工作示例 My example . 我现在的问题是如何检查菜单是否有子菜单,如何添加路由器链接,如何检查是否有子菜单。请帮忙

    2 回复  |  直到 7 年前
        1
  •  1
  •   Manikandan Velayutham    7 年前

    只需根据我们的需要重新组织对象并执行。

    my_menu = [
        {menu:[{main:'Menu 1', submenu: [{sub:'Sub Menu 1', route:'/home1'}, {sub:'Sub Menu 2', route:'/home2'}]}]},
        {menu:[{main:'Menu 2', submenu: [{sub:'Sub Menu 1', route:'/about'}, {sub:'Sub Menu 2', route:'about1'}, {sub:'Sub Menu 3',route:'about2'}]}]},
        {menu:[{main:'Menu 3', submenu:[]}]}
      ];
    

    参考 DEMO .

        2
  •  0
  •   Anoop Surendran    7 年前

    错误就在这一行

    <div id="collapse1" class="panel-collapse" [class.collapse]='current != i'>
    

    逻辑不正确。但是,如果删除条件检查 [class.collapse]='current != i' 这会解决你的问题。不需要其他东西。