Как я могу скрыть пункт меню Maintanence для пользователей, которые не являются администраторами?
У меня есть это в моем app.menu.ts:
import { MenuItem } from '../fw/services/menu.service';
export let initialMenuItems: Array<MenuItem> = [
{
text: 'Dashboard',
icon: 'glyphicon-dashboard',
route: '/authenticated/dashboard',
submenu: null
},
{
text: 'Books',
icon: 'glyphicon-book',
route: null,
submenu: [{...}]
},
{
text: 'Authors',
icon: 'glyphicon-user',
route: null,
submenu: [{...}],
},
{
text: 'Maintenance',
icon: 'glyphicon-wrench',
route: null,
submenu: [{...}]
}]
Мой menu.service.ts
import { Injectable } from '@angular/core';
export interface MenuItem {
text: string,
icon: string,
route: string,
submenu: Array<MenuItem>
}
@Injectable()
export class MenuService {
items: Array<MenuItem>;
isVertical = false;
showingLeftSideMenu = false;
displayMaintainance = false;
showMaintenance() {
var currentUser = JSON.parse(localStorage.getItem('currentUser'));
if (currentUser.isAdmin === true) {
return true;
} else {
return false;
}
};
}
Мне удалось сделать недоступными ссылки на техническое обслуживание с помощью isAdminGuard, как это, но я бы предпочел полностью скрыть меню, это имеет больше смысла.
{ path: 'book-detail/:id/:operation', component: BookDetailComponent, canActivate: [IsAdminGuard] }
У меня также есть эта функция showMaintanence (), но мне не удается использовать ее в app.menu.ts, я думаю, что что-то упустил ..
Чтобудет лучшим способом сделать это?Спасибо!