Я пишу проект angular6 с primeng.
Мне нужно объединить тег primeng panelMenu с ng-шаблонами.Ниже приведены снимки для меню панели.
Без раскрытия меню панели.
С расширением меню панели.
Моя панель имеет 3 заголовка: 1. Студент 2. Отдел 3. Справка, и в каждом из них есть подменю.Каждый раз, когда я щелкаю по подменю, соответствующие ng-шаблоны должны загружаться рядом с Menu (в черном пространстве).
Это может быть достигнуто с помощью параметра routerLink в MenuItem и созданием каждого подменю в качестве отдельного компонента.Но я не хочу поступать таким образом.Я хочу загружать соответствующие 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 - логическая переменная.