当使用ui-router
时,有什么方法可以根据cookie中的数据将用户重定向到特定状态?
我试图从.config()
做到这一点,但因为我无法注入其他依赖关系,所以它不工作。
我也试过在.run()
块上做,但它只是给出了一个循环(当然)。
这是我第一次尝试在.config()
function ConfigRouter($locationProvider, $stateProvider, $urlRouterProvider, Constant, localStorageService) {
$locationProvider.html5Mode(true);
$urlRouterProvider.when('/', function($injector) {
var $state = $injector.get('$state');
checkState($state);
});
$urlRouterProvider.when('', function($injector) {
var $state = $injector.get('$state');
checkState($state);
});
$urlRouterProvider.otherwise(function($injector) {
var $state = $injector.get('$state');
$state.go('error');
});
function checkState($state) {
var userCookie = localStorageService.cookie.get(Constant.cookieName);
if(userCookie.type == 1) {
$state.go('home-app');
} else if (userCookie.type == 2) {
$state.go('home-client');
} //and so on
}
}
有没有办法做到这一点?或以其他方式实现相同的结果?基本上我需要根据用户角色将用户发送到应用程序的不同部分。如果他是一个管理员,客户端,主持人等。每个人都有一个特定的应用程序,并需要从服务器检索特定的数据,这就是为什么我想这样做,所以我可以请求数据上的每个州的决心。