在一个mean.js应用程序中,我想在用户登录和注销时在顶部导航栏中显示菜单项。菜单项在用户登录时显示,但是在用户退出时不会发生。

mean.js docs状态将'isPublic'属性设置为true,可以使菜单项在用户注销时显示在导航栏上。但这是行不通的。这是代码:

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

我看过的解决方案都建议将isPublic属性设置为true,但是在这个问题上似乎有太多的困惑。有人回答吗?

最佳答案

如果您在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);

我希望这有帮助。

09-25 18:26