0

У меня есть приложение с угловым js, использующее разные состояния, моя первая страница - это страница входа в систему, и она содержит ссылку на забытый пароль, при щелчке забытого pwd приложение будет перенаправлено на заброшенную страницу pwd, после успешного входа в систему на панели инструментов появляются сценарии являются:Получение неправильных состояний при нажатии кнопки «Назад» в браузере в угловом режиме?

, когда я нахожусь на странице входа и нажимаю кнопку браузера назад, я буду перенаправлен только на страницу входа.

Когда я нахожусь на забытой странице pwd и нажимаю кнопку «назад», я буду перенаправлен на страницу входа, так как это первая страница моего приложения.

проблема, с которой я столкнулся, - это когда я перезагружаю страницу с забытым паролем и нажимаю кнопку браузера назад, я перенаправляюсь на страницу входа в систему и снова нажимаю кнопку «Назад», приложение перенаправляется на панель управления, даже не войдя в приложение, i я не получаю, где я ошибаюсь, ставя свои состояния. любезно помочь

здесь мой router.js внутри модуля приложения, здесь маршрута по умолчанию означает панель

.config(['$stateProvider', '$urlRouterProvider', 'DEFAULT_ROUTE', function($stateProvider, $urlRouterProvider, DEFAULT_ROUTE) { 
     $urlRouterProvider.otherwise(DEFAULT_ROUTE); 
     // application start point 
     $stateProvider 
     .state('app', { 
      url: '', 
      abstract: true, 
      templateUrl: 'src/app/templates/base.html', 
      controller: 'AppController' 
     }); 

    }]) 

    .run(['$rootScope', '$location', 'Auth', 'DEFAULT_ROUTE', function($rootScope, $location, Auth, DEFAULT_ROUTE){ 
     $rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams) { 

     if(!Auth.session() && $location.path() != '/forgot'){ 
      $location.path('/login'); 
     } else { 

      if($location.path() == '/login') { 
       //$location.path(DEFAULT_ROUTE); 
       $location.path('/login'); 
      } 
      else if($location.path()=='/forgot'){ 
       $location.path('/forgot'); 
      } 
     } 
     }); 
    }]) 

вот моя маршрутизация для модуля авторизации:

config(['$stateProvider',function($stateProvider){ 
     $stateProvider 
     .state('app.login', { 
      url: '/login', 
      views: { 
      "content": { 
       templateUrl: 'src/login/templates/login.html', 
       controller: 'loginController' 
      } 
      } 
     }) 
      .state('app.forgotPassword', { 
       url: '/forgot', 
       views: { 
        "content": { 
         templateUrl: 'src/login/templates/forgotPassword.html', 
         controller: 'forgotPasswordController' 
        } 
       } 
      }) 
    }]); 

ответ

0

вы храните информацию о сеансе? в куки или в другой форме? если да, то сделать следующий

$rootScope.$on('$locationChangeStart', function (event, next, current) { 
     var token = $cookieStore.get('token');   
     if(token==null)   

      $location.path('/'); 

}); 
+0

У меня есть служба аутентификации, которая хранит данные в локальном хранилище, но это делается только после входа в систему. – Anky

0

Так в основном вы нужны обнаружить с какой страницей состояние изменилось, и чем вы можете achive ваших критериев перенаправления. Вы можете достичь этого, используя $ locationChangeSuccess. Посмотрите this для получения дополнительной информации. Если вы можете добавить плункер, копирующий ваш сценарий, мы бы вам очень помогли, добавив в него отсутствующую часть.