根据localstorage angular ui-router的值显示/隐藏导航项

时间:2016-05-17 18:28:41

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

我有一个类似

的模块
  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是提供者,它是核心包的一部分。  问题是我想在导航栏上隐藏Apps项目,考虑到localstorage中的值,但我无法在config()提供程序错误中访问$localStorage。我对它的研究发现它是不可能的。

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

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:4)

您可以使用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
});