I need to display side menu items according to the role of the user. so I check in app.html if the page (role) is equal to logged in role. But it does not display items inside menu just after login but after refreshing the app using browser refresh button it displays correct items as it should.
I guess the problem is ionic is caching the menu view if it is so how can I refresh the app for new menu items to display.
Every time I login with another user/role, it displays menu according to the previous user/role.
app.component.ts
constructor() {
this.initializeApp();
this.pages = [
{ title: 'Home', component: 'HomePage', icon: 'home', role: 5 },
{ title: 'Profile', component: 'ProfilePage', icon: 'person', role: 5 },
{ title: 'Account', component: 'AccountPage', icon: 'home', role: 5 },
{ title: 'Search Employee', component: 'AtlasemployeehomePage', icon: 'home', role: 4 }
];
}
app.html
<ion-list>
<div *ngFor="let p of pages">
<button menuClose ion-item *ngIf="p.role == role" (click)="openPage(p)">
<ion-icon name="{{p.icon}}" style="margin-right:10%"></ion-icon> {{p.title}}
</button>
</div>
<button menuClose ion-item (click)="presentLogout()">
<ion-icon name="log-out" style="margin-right:10%"></ion-icon> Logout
</button>
</ion-list>
I am setting the role variable according to the logged in user.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…