使用Angularjs基于角色的动态菜单

Dynamic menus based on roles using Angularjs

本文关键字:动态 菜单 角色 Angularjs 于角色 使用      更新时间:2023-09-26

如何根据角色查看菜单?这段代码工作正常,但我发现一个问题,$role_id只有在刷新代码后才设置。不重新加载就不能赋值

angular.module('main', [])
            .config(routeConfig);
            function routeConfig($stateProvider,$rootScope)
            {
               angular.injector(['ngCookies'])
                   .invoke(['$cookies','$cookieStore', function($cookies,$cookieStore)
                 {
                     $role_id = $cookieStore.get('rolecookies');
                     console.log($role_id);
                     if($rootScope.role_id==1)
                     {
                          $stateProvider
                         .state('main.admin', 
                         {
                           url: '/admin',
                           controller: 'psCtrl',
                           templateUrl: 'app/pages/admin/main/main.view.html',
                           title: 'Admin',
                           sidebarMeta: {
                               icon: 'ion-android-home',
                               order: 1,
                              },
                          })
                         .state('main',
                         {
                             url: '/main',
                             template : '<ui-view></ui-view>',
                             abstract: true,
                             title: 'Main Home',
                             sidebarMeta: {
                             icon: 'ion-android-home',
                             order: 1,
                              },
                          });
                      }
            }]);
    }

我假设你的cookie已经设置,尝试

<!-- -->
<body ng-init="getCookie()">
$scope.getCookie = function(){
       $role_id = $cookieStore.get('rolecookies');
       //I'm not familiar with NgCookies but this is what I mostly workaround with it when avoiding refresh
}
相关文章: