【问题标题】:Build dynamic menu using ng-zorro使用 ng-zorro 构建动态菜单
【发布时间】:2022-01-18 17:18:21
【问题描述】:
【问题讨论】:
标签:
angular
antd
ng-zorro-antd
【解决方案1】:
您必须将 ngTemplate 移动到该菜单存在的第一个 ngContainer 内
fixed stackblitz
@Component({
selector: 'nz-demo-menu-horizontal',
template: `
<ul nz-menu nzMode="inline">
<ng-container *ngFor="let menu of menus">
<ng-container *ngTemplateOutlet="recursiveListTmpl; context: { menu: menu }"></ng-container>
<ng-template #recursiveListTmpl let-menu="menu">
<li
*ngIf="menu.children && menu.children.length > 0"
nz-submenu
>
{{menu.title}}
<ng-container *ngTemplateOutlet="recursiveListTmpl; context: { menu: menu.children }"></ng-container>
</li>
</ng-template>
<li *ngIf="!menu.children || menu.children.length==0" nz-menu-item>
{{menu.title}}
</li>
</ng-container>
</ul>
`,
})
export class NzDemoMenuHorizontalComponent {
menus = [
{ title: 'test', children: [] },
{
title: 'with children',
children: [
{ title: 'child', children: [{ title: 'child 2', children: [] }] },
],
},
];
}