【问题标题】:Show/Hide navigation item depending on value from localstorage angular ui-router根据本地存储角度 ui-router 的值显示/隐藏导航项
【发布时间】:2016-05-17 18:28:41
【问题描述】:

我有一个类似的模块

  function config(msNavigationServiceProvider)
    {
        // Navigation
        msNavigationServiceProvider.saveItem('apps', {
            title : 'APPS',
            group : true,
            weight: 1
        });

        msNavigationServiceProvider.saveItem('apps.dashboards', {
            title : 'Dashboards',
            icon  : 'icon-tile-four',
            weight: 1
        });
    }

msNavigationServiceProvider 是提供者,它是核心包的一部分。 问题是我想根据 localstorage 中的值隐藏导航栏上的 Apps 项目,但我无法在 config() 提供程序错误中访问 $localStorage。我对此进行了研究,发现这是不可能的。

那么我应该怎么做才能从 Navigation 中隐藏项目。我不想接触核心包,但我也不能在我的代码中使用 localstorage。

任何帮助将不胜感激

【问题讨论】:

  • 您可以访问run 方法吗?也许您可以尝试从那里删除项目
  • 其实我是新手,如何访问这个方法?如果您能告诉我,那将非常有帮助

标签: angularjs navigation angular-ui-router local-storage angular-material


【解决方案1】:

您可以使用msNavigationService中的隐藏属性

hidden: function ()
        {
            return boolean; // must be a boolean value
        }

例子:

// Apps.Dashboards
msNavigationService.saveItem('apps.dashboards', {
    title : 'Dashboards',
    icon  : 'icon-tile-four',
    class : 'navigation-dashboards',
    hidden: function ()
    {
        return AuthService.isAdmin; // must be a boolean value
    },
    weight: 1
});

【讨论】:

  • 我无法将 AuthService 注入 msNavigationServiceProvider... 我正在配置块中运行提供程序。谢谢
猜你喜欢
  • 1970-01-01
  • 2019-04-15
  • 2018-09-20
  • 2017-06-24
  • 1970-01-01
  • 2020-09-21
  • 2017-04-04
  • 1970-01-01
  • 2020-04-11
相关资源
最近更新 更多