ডায়নামিক মেন্যু
এঙ্গুলার ফ্রেমওযার্কে সহজেই মেন্যুকে ডায়নামিক মেনুতে পরিবর্তন করা যায়।
প্রথমে মেনু ইন্টারফেস তৈরি করতে হবে
export interface Menu {
name: string;
type: string;
icon: string;
cssId: string;
state: string;
children?: Menu[];
}
তারপর ইন্টারফেস অনুযায়ী JSON রেন্ডার করতে হবে
const DOCTOR_MENUS: Menu[] = [
{ cssId: 'sidenav-dashboard-btn', state: '/admin/dashboard', name: 'Dashboard', type: 'link', icon: 'dashboard' },
{ cssId: 'sidenav-patient-list-btn', state: '/admin/patient/list', name: 'Patient', type: 'link', icon: 'industry' },
{ cssId: 'sidenav-appointment-list-btn', state: '/admin/appointment/list', name: 'Appointment', type: 'link', icon: 'calendar-check' },
{
cssId: 'sidenav-doctor-data-btn', state: '/admin/doctor-data', name: 'Doctor data', type: 'link', icon: 'calendar-check',
children: [
{ cssId: 'sidenav-doctor-data-visiting-hour-btn', state: '/admin/doctor-data/visiting-hour', name: 'Visiting hour', type: 'link', icon: 'calendar-check' },
{ cssId: 'sidenav-doctor-data-cc-btn', state: '/admin/doctor-data/chief-complaint', name: 'Chief Complaint', type: 'link', icon: 'calendar-check' },
{ cssId: 'sidenav-doctor-data-treatment-btn', state: '/admin/doctor-data/treatment', name: 'Treatment', type: 'link', icon: 'calendar-check' },
]
},
];
তারপর মেনু দেখানোর জন্য একটা ডিরেক্টিভ বানাতে হবে
<ng-container *ngFor="let menu of menus">
<ng-container *ngIf="menu.children && menu.children.length > 0">
<div class="nested-menu">
<a (click)="addExpandClass(menu.cssId)" class="list-group-item">
<i class="fa fa-plus"></i>
<span>{{ menu.name | translate }}</span>
</a>
<li [class.expand]="showMenu === menu.cssId" class="nested">
<ul class="submenu">
<li *ngFor="let child of menu.children">
<a [routerLinkActive]="['router-link-active']" [routerLink]="child.state" class="list-group-item" id="{{child.cssId}}">
<fa-icon icon="{{child.icon}}"></fa-icon>
<span>{{child.name}}</span>
</a>
</li>
</ul>
</li>
</div>
</ng-container>
<ng-container *ngIf="!menu.children || (menu.children && menu.children.length === 0)">
<a [routerLinkActive]="['router-link-active']" [routerLink]="menu.state" class="list-group-item" id="{{menu.cssId}}">
<fa-icon icon="{{menu.icon}}"></fa-icon>
<span>{{menu.name}}</span>
</a>
</ng-container>
</ng-container>
ব্যাস, হয়ে গেলো ড্যানমিক মেনু