2015-10-06 48 views
0

我已经在MySql中设置了几个角色,并且我想在navbar.html中使用函数 isInAnyRole,以便为角色为'ROLE_USER'和ROLE_SUPERVISOR'的用户显示菜单。Jhipster - 使用isInAnyRole

我已通过isInAnyRole(['ROLE_USER','ROLE_SUPERVISOR'])替换isInRole('ROLE_USER')。

但isInAnyRole未被调用,并且没有显示任何菜单。

什么是使用isInAnyRole函数的好方法?

感谢

<ul class="nav navbar-nav nav-pills"> 
       <li ng-switch-when="true" class="dropdown-hover" ng-class="{active: $state.includes('user')}" ng-show="isInAnyRole(['ROLE_USER','ROLE_SUPERVISOR'])"> 

isInAnyRole: function (roles) { 
    if (!_authenticated || !_identity.roles) { 
     return false; 
    } 

    for (var i = 0; i < roles.length; i++) { 
     if (_identity.roles.indexOf(roles[i]) !== -1) { 
      return true; 
     } 
    } 

    return false; 
} 
+0

你怎么知道'isInAnyRole()'没有被调用?你能介绍一下你的代码的一部分吗? –

+0

我在isAnyRole()中设置了一个断点,并在isInRole()中设置了一个断点。 isInRole中的执行步骤但isInAnyRole中没有 – user1260928

回答

1

您使用的是旧版本JHipster的,自发布2.7.0我们提供了一个指令authority.directive.js这不正是你想要的东西。你应该考虑升级你的应用程序。

+0

我即将交付我的应用程序在生产中,正在升级jhipster版本安全吗? – user1260928

+1

这很可能会破坏你的应用,因为你落后了几个月。作为替代方案,只需复制该指令并更改HTML模板以使用它。 –

+0

请问您可以添加一个如何使用它的例子,或者指出一个链接来显示它? –