Bootstrap 4 手风琴导航 angular 4
Bootstrap 4 accordion for navigation in angular 4
我想在 Angular 中用 json 对象创建嵌套菜单 4. 我写了下面的代码。
<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。我现在的问题是如何检查菜单是否有子菜单以及如何添加路由器 link 以及如何检查是否有子菜单。请帮助
错误在行
<div id="collapse1" class="panel-collapse" [class.collapse]='current != i'>
逻辑不正确。但是,如果您删除条件检查 [class.collapse]='current != i'
这将解决您的问题。不需要其他任何东西。
根据我们的需要重新组织对象并实现即可。
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。
我想在 Angular 中用 json 对象创建嵌套菜单 4. 我写了下面的代码。
<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。我现在的问题是如何检查菜单是否有子菜单以及如何添加路由器 link 以及如何检查是否有子菜单。请帮助
错误在行
<div id="collapse1" class="panel-collapse" [class.collapse]='current != i'>
逻辑不正确。但是,如果您删除条件检查 [class.collapse]='current != i'
这将解决您的问题。不需要其他任何东西。
根据我们的需要重新组织对象并实现即可。
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。