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
}
}
にしようとした何ですか?または同じ結果を達成するための他の方法は?基本的には、ユーザーの役割に基づいてユーザーをアプリの別の部分に送る必要があります。彼が管理者、クライアント、モデレータなどの場合は、それぞれが特定のアプリケーションを持っており、特定のデータをサーバから取得する必要があります。なぜなら、私はそれをやりたいのですから、各状態の解決に関するデータを要求できます。