可以通过以下步骤实现:
export interface MenuItem {
id: number;
name: string;
children?: MenuItem[];
}
*ngFor
和*ngIf
)来遍历菜单项并显示相应的子菜单。例如:import { Component, Input } from '@angular/core';
@Component({
selector: 'app-menu',
template: `
<ul>
<li *ngFor="let item of menuItems">
{{ item.name }}
<app-menu *ngIf="item.children" [menuItems]="item.children"></app-menu>
</li>
</ul>
`,
})
export class MenuComponent {
@Input() menuItems: MenuItem[];
}
MenuComponent
来显示动态级联菜单。可以在父组件的模板中定义菜单项数据,并将其传递给MenuComponent
作为输入属性。例如:import { Component } from '@angular/core';
@Component({
selector: 'app-root',
template: `
<app-menu [menuItems]="menuItems"></app-menu>
`,
})
export class AppComponent {
menuItems: MenuItem[] = [
{
id: 1,
name: '菜单项1',
children: [
{
id: 11,
name: '子菜单项1.1',
},
{
id: 12,
name: '子菜单项1.2',
},
],
},
{
id: 2,
name: '菜单项2',
},
];
}
这样,当AppComponent
被渲染时,MenuComponent
将根据传递的菜单项数据动态生成级联菜单。
优势:
应用场景:
推荐的腾讯云相关产品和产品介绍链接地址:
Elastic 实战工作坊
Elastic 实战工作坊
云原生正发声
云+社区技术沙龙[第27期]
Elastic 实战工作坊
DBTalk技术分享会
领取专属 10元无门槛券
手把手带您无忧上云