mean.js菜单isPublic无法正常工作

时间:2014-11-23 20:07:35

标签: angularjs node.js mongodb express mean

在mean.js应用中,我想在用户登录和退出时在顶部导航栏中显示菜单项。用户登录时会显示菜单项,但是,当用户退出时不会发生这种情况。

将'isPublic'属性设置为true的mean.js文档状态将允许在用户注销时在导航栏上显示菜单项;但那不起作用。这是代码:

Menus.addMenuItem('topbar','Talks','talks','dropdown','/ talks(/ create)?',true);   Menus.addSubMenuItem('topbar','talks','List Talks','talks');   Menus.addSubMenuItem('topbar','talk','New Talk','talks / create');

我看到的解决方案,都建议将isPublic属性设置为true,但是围绕这个主题似乎有太多的混淆。有答案的人吗?

1 个答案:

答案 0 :(得分:8)

如果您在mean.js的menus.client.services.js模块中查看core,则最后一行如下所示: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); 

我希望这会有所帮助。