AngularJS导航

时间:2016-03-23 13:09:53

标签: angularjs

我要求说明: 登录用户可以查看员工列表,个人员工查看等。对于管理员,左侧导航菜单提供不同实体的列表,管理员应该能够查看所选实体的所有员工列表。

但是,在左侧导航下拉菜单中更改实体后,我需要将管理员导航到主页。 employee-config.js使用employeeListCtrl,主页有自己的控制器(在单独的home-config.js中定义)

如何从

导航
$stateProvider.state("employeeList",{
                        url: "/employee/list",
                        templateUrl: cfg.URL_ROOT + "/IC/employee-app/employee-list/employee-list.html",
                        data: {
                            listStateName: "homeMain"   // This is not working
                        },
                        controller: "employeeListCtrl as vm"
                    });

$stateProvider
            .state("homeMain", {
                url: "/home/main",
                templateUrl: cfg.URL_ROOT + "/IC/home-app/home-main/home-main.html",
                data: {
                    listStateName: "homeMain"
                },
                controller: "homeMainController as vm"
            });

1 个答案:

答案 0 :(得分:0)

如果你在谈论只是重定向到其他状态,你可以用简单的

  

$ location.url(“这里你的州名如'employeeList')

如果您正在谈论当前用户的授权,您可以使用.config中的$ stateprovider的onstatechangestart函数,我将共享此代码以供参考。

  

块引用

     

$ rootScope。$ on(“$ routeChangeStart”,function(event,next,current){
  $ rootScope.onLoading(); var authorized = null;           if(next.access!== undefined&& next.access.requiresLogin){              var userLoggedIn = UserService.getCurrentUser();               authorization.getConditions(next.access,userLoggedIn);           }});

你可以参考路线找到next.access

ROUTER.when('dashboard_path', '/dashboard', {
  controller : 'DashboardCtrl',
  templateUrl : CONFIG.prepareViewTemplateUrl('videos/index'),
   access: {
        requiresLogin: true,
        requiredPermissions: ['admin', 'AccountManager'],
        permissionType: 'AtLeastOne'
    }
});

访问将存储值,我们可以将其转换为routechange函数并进行比较。

请注意有检查服务器端用户会话存在的授权服务。

如果有帮助或需要更多细节,请告诉我。