এঙ্গুলার ফ্রেমওযার্কে সহজেই মেন্যুকে ডায়নামিক মেনুতে পরিবর্তন করা যায়।
প্রথমে মেনু ইন্টারফেস তৈরি করতে হবে
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>&nbsp; <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> &nbsp; <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> &nbsp; <span>{{menu.name}}</span> </a> </ng-container> </ng-container><br></pre><p></p><p>ব্যাস, হয়ে গেলো ড্যানমিক মেনু </p>