Всем привет и спасибо за ответ))))) Суть вопроса: при изменении state проверяю, есть ли в его настройках параметр needAuth. Ну это не важно, по умолчанию для всех стэйтов нужна авторизация пользователя. Далее через сервис checkAuthService.checkAuth() посылается запрос на сервер, который возвращает statusCode == 200 если пользователь авторизован. При этом делаю опять state.on на этот же state, но уже добавляю параметр skip, чтобы не делать опять проверки на авторизацию. И вот в этом случае он не переходит на указанный state. Все эти события происходят при нажатии кнопки Sign in. Если нажать кнопку второй раз, то все отлично. А вот и вопрос: почему не переходит на нужный state когда fromParams.skip == true? Код | $rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState, fromParams) { //if variable "needAuth" is not defined in data state, then default value is true (needAuth = true) var needAuth = (toState.data === undefined || toState.data.needAuth === undefined) ? (true) : (false);
if ((!fromParams.skip) && (needAuth)) { event.preventDefault();
checkAuthService.checkAuth() .then(function (response) { if (response.data.statusCode == 200) { fromParams.skip = true; $state.go(toState.name, fromParams); } else { event.preventDefault(); $state.go('sign_in'); } }); } } );
|
|