我要求说明: 登录用户可以查看员工列表,个人员工查看等。对于管理员,左侧导航菜单提供不同实体的列表,管理员应该能够查看所选实体的所有员工列表。
但是,在左侧导航下拉菜单中更改实体后,我需要将管理员导航到主页。 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"
});
答案 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函数并进行比较。
请注意有检查服务器端用户会话存在的授权服务。
如果有帮助或需要更多细节,请告诉我。