angularjs 权限控制显示办法

来源:互联网 发布:淘宝海报设计技巧 编辑:程序博客网 时间:2024/05/17 09:17

 

 

在项目中遇到根据用户不同的角色显示不同内容的需求

 

 

下面是我自己想的一种解决办法

 

一、定义用户角色

/* * 用户角色 service * */angular.module('hkApp').factory('roleService', function($http, API_ENDPOINT, $q, $log) {    var roleServiceObj = {};//当前角色var currentRole;//数据字典,数据对应的角色var roleNameData = {2:"门店",3:"创客",5:"创客",//普通用户6:"分公司"};//设置当前角色function setCurrentRole(currentRoleValue){currentRole = currentRoleValue;}//得到当前角色function getCurrentRole(currentRoleValue){return currentRole;}//得到当前角色名字function getCurrentRoleName(roleKey){return roleNameData[roleKey];}//得到角色数据字典function getRoleNameData(){return roleNameData;}//是否是会员function isMember(){if(currentRole==3 || currentRole == "3" || currentRole==5 || currentRole == "5"){return true;}return false;}//是否是公司function isCompany(){if(currentRole==6 || currentRole == "6"){return true;}return false;}//是否是店铺function isShop(){if(currentRole==2 || currentRole == "2"){return true;}return false;}roleServiceObj = {"setCurrentRole" : setCurrentRole,"getCurrentRole" : getCurrentRole,"getCurrentRoleName" : getCurrentRoleName,"isMember" : isMember,"isCompany" : isCompany,"isShop" : isShop,"getRoleNameData" : getRoleNameData};    return roleServiceObj;});

 

二、配置路由

$stateProvider//app的首页.state('index',{url:'/app_index',template: '<div class="" ng-if="isMember">会员名称:注册创客</div>',onEnter :function(){//因此底部的导航栏$(".index_footer").show();},controller:["$scope","$state","ApiService","roleService",function($scope,$state,ApiService,roleService){var userInfoPromise = ApiService.post("{:U('UserInfo/getUser')}",{"id": "{$Think.session.ADMINID}"});userInfoPromise.then(function(response){if(response.status == 1){//会员名称$scope.username = response.data.name;//会员类型$scope.typetext = response.data.typetext;//积分$scope.jifen = response.data.jifen;//红包$scope.redpacket = response.data.redpacket;//缓存记录用户的角色roleService.setCurrentRole(response.data.type);//是否是会员$scope.isMember = roleService.isMember();//是否是公司$scope.isCompany = roleService.isCompany();//是否是店铺$scope.isShop = roleService.isShop();}});}]})

 

 

 

 

 

0 0