2014-11-23 2 views
6

В приложении mean.js я хотел отобразить пункты меню на верхней панели навигации, когда пользователь подписал, а также выйдет. Элементы меню отображаются во время входа пользователя, однако это не происходит, когда пользователь выйдет из системы.mean.js меню isPublic не работает

Средство определения состояния .sys указывает, что свойство 'isPublic' равно true, чтобы элементы меню отображались на навигационной панели при выходе пользователя из системы; но это не работает. Вот код:

Menus.addMenuItem ('topbar', 'Talks', 'talk', 'dropdown', '/ talk (/ create)?', True); Menus.addSubMenuItem ('topbar', 'talk', 'List Talks', 'talk'); Menus.addSubMenuItem («верхняя панель», «переговоры», «новый разговор», «переговоры/создание»);

Решения, на которые я смотрел, все предлагают установить для свойства isPublic значение true, но, похоже, слишком много путаницы в этом вопросе. Кто-нибудь с ответами?

ответ

8

Если вы посмотрите в menus.client.services.js в модуле core mean.js, последняя строка выглядит так: this.addMenu('topbar');. Если вы измените его на this.addMenu('topbar', true);. Вы увидите все пункты меню, отображаемые на верхней панели, когда вы не вошли в систему. Затем вы можете добавить свой пункт меню, как в вашем примере, или без true, поскольку он наследует его от настройки, которая была только что изменена:

Menus.addMenuItem('topbar', 'Talks', 'talks', 'dropdown', '/talks(/create)?'); 
OR 
Menus.addMenuItem('topbar', 'Talks', 'talks', 'dropdown', '/talks(/create)?', true); 

Или, как показано ниже, если вы теперь хотите, чтобы это скрыть, когда не авторизованы:

Menus.addMenuItem('topbar', 'Talks', 'talks', 'dropdown', '/talks(/create)?', false); 

Я надеюсь, что это помогает.

+0

Perfect. он работает сейчас. – user3681587

Смежные вопросы