2014-09-04 6 views
3

Я хочу перенаправить mypage на домашнюю страницу, если для параметра sessionStorage.logged установлено значение true. Ниже мой код. почему мой ниже код не работает.как перенаправить на другую страницу в routeProvider в состоянии разрешения

Поскольку я новичок в angularjs, я не знаю, как это сделать. Я буду более благодарностью к и, если и поможет решить эту проблему

.when('/login', 
{ 
    templateUrl: 'views/login.html', 
    controller:'LoginCtrl', 
    resolve: 
    { 
      mess:function() 
      { 
       var t=(sessionStorage.logged).toString(); 
       if(t=="true") 
       { 
        redirectTo: '/home'; 
       } 
      } 

    } 
}) 
+2

Не совсем ответ, но обходной путь: вместо «решимостью» , добавьте в свой logincontroller: if (ужеLoggedin) {$ location.path ('/ home');} – Fortega

+1

@Fortega - логика контроллера выполняется только при первом загрузке контроллера. Если пользователь в любом случае вовремя вошел в/во второй раз, ваше решение не будет выполнено. – andyzinsser

ответ

5

Использование $location.path(), он работает так же, как redirectTo:

.when('/login', 
{ 
    templateUrl: 'views/login.html', 
    controller:'LoginCtrl', 
    resolve: 
    { 
      mess:function($location) 
      { 
       var t=(sessionStorage.logged).toString(); 
       if(t=="true") 
       { 
        $location.path('/home'); 
        //redirectTo: '/home'; 
       } 
      } 

    } 
}) 
+1

Другим вариантом, который я нашел, является событие onEnter: http://stackoverflow.com/questions/25047884/angular-ui-router-to-accomplish-a-conditional-view – andyzinsser

Смежные вопросы