Gibt es eine Möglichkeit, einen Benutzer in einen bestimmten Zustand umleiten, basierend auf Daten von Cookies bei der Verwendung von ui-router
?
Ich habe versucht, es von der .config()
zu tun, aber da ich nicht in der Lage bin, andere Abhängigkeiten zu injizieren, hat es nicht funktioniert.
Ich habe auch versucht, es auf dem .run()
Block zu tun, aber es gibt nur eine Schleife (natürlich).
Dies ist, was ich versucht, zuerst auf dem Gibt es .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
}
}
einen Weg, es zu tun? Oder anderen Weg, um das gleiche Ergebnis zu erzielen? Grundsätzlich muss ich den Benutzer basierend auf der Benutzerrolle zu einem anderen Teil der App senden. Wenn er ein Admin, Client, Moderator, etc .. Jeder hat eine spezifische App und muss bestimmte Daten vom Server abrufen, deshalb möchte ich es tun, so kann ich die Daten über die Auflösung von jedem Staat anfordern.