angular - PanelMenuModule 与 ng-template 或 ng-container 的组合
问题描述
我正在用primeng写一个angular6项目。
我需要将primeng的panelMenu标签与ng-templates结合起来。以下是面板菜单的快照。
无需展开面板菜单。
我的面板有 3 个标题 1. 学生 2. 部门 3. 帮助,每个标题都包含子菜单。每当我单击子菜单的相应 ng-templates 时,必须在 Menu 旁边加载(在黑色空间中)。
这可以通过使用 MenuItem 的 routerLink 选项并将每个子菜单作为单独的组件来实现。但我不想那样做。每当单击子菜单时,我都想加载相应的 ng 模板。
请提出一种方法,或提出一些示例。
下面是代码片段。
组件类
export class ViewOrderDetailsComponent implements OnInit {
private viewDisplayItems: MenuItem[];
isStudent: boolean = true;
constructor() {
this.viewDisplayItems = [
{
label: 'student', items: [
{ label: 'addStudent' }
]
},
{
label: 'department',
items: [
{ label: 'addDepartment' },
{ label: 'deleteDepartment' }
]
},
{
label: 'help',
items: [
{ label: 'searchStudent' },
{ label: 'searchDepartment' }
]
}
];
}
ngOnInit() {
}
}
HTML 模板
<p-panelMenu [model]="viewDisplayItems" [style]="{'width':'200px'}">
<ng-container *ngIf="isStudent; then studentMenu; else departmentMenu">
</ng-container>
</p-panelMenu>
<ng-template #studentMenu>
<h2>Welcome to Student Menu</h2>
</ng-template>
<ng-template #departmentMenu>
<h2>Welcome to Department Menu</h2>
</ng-template>
isStudent 是一个布尔变量。
解决方案
从这里的文档http://primefaces.org/primeng/#/panelmenu看起来没有像其他 PrimeNg 模块那样的模板选项。
但是,另一种选择是将另一个项目添加到项目中。使用MenuItem
http://primefaces.org/primeng/#/menumodel上的文档
此时,您可以使用 CSS 定位项目以使其具有更理想的外观。
this.viewDisplayItems = [
{
label: 'student',
items: [
{ label: 'Welcome to the Student Menu', separator: true },
{ label: 'addStudent' }
]
},
{
label: 'department',
items: [
{ label: 'Welcome to the Department Menu', separator: true },
{ label: 'addDepartment' },
{ label: 'deleteDepartment' }
]
},
{
label: 'help',
items: [
{ label: 'Welcome to the Help Menu', separator: true },
{ label: 'searchStudent' },
{ label: 'searchDepartment' }
]
}
];
推荐阅读
- typescript - 如何基于字符串数组制作对象类型/接口
- r - 为什么 `class::knn()` 函数给出的结果与具有固定 k 的 `kknn::kknn()` 不同?
- x86 - 如何检测 Intel Alder Lake CPU 中的 P/E-Core?
- python - python plotly express vs graph_objects:plotly.express的line_group对于plotly.graph_objects的等价物是什么
- c - 当我尝试再次打开文件时,文件描述符(fd)为-1,并且文件没有以只读模式打开,谁能解释为什么?
- python - 服务器启动后如何运行测试
- list - 在不使用 elem 函数和递归的情况下返回给定字符是否在列表中
- javascript - 使用 javascript 克隆或复制 div
- python - Pygame TypeError:blit 的目标位置无效
- flutter - 颤振中的范围过滤器