2016-04-13 3 views
0

Когда вы делаете запрос $http.get в моем методе run в stateChangeSuccess и перенаправляете в состояние, приложение зависает. Приложение не запускается в цикл, а зависает.

$rootScope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams) { 

    $http({ 
     method: "GET", 
     url: '/some/api/endpoint', 
    }).then(function(response) { 
     // proceed with next route 
    }, function(response) { 
     $state.go('myNewState', {}, {reload: true}); 
    }); 
}); 

Любая идея, почему?

+0

Если этот запрос всегда терпит неудачу, и вы собираетесь в результате к тому же и затем снова запустить этот неудачный запрос, а затем перенаправить в одно и то же состояние, а затем снова запустить запрос об отказе ......... –

ответ

0

В дополнение к моему комментарию. Если запрос не работает, вы перенаправляетесь на myNewState, а затем повторяете один и тот же запрос снова и снова из-за изменений состояния кругового состояния.

Попробуйте добавить это до запроса:

if(toState.name == 'myNewState') { 
    return; 
} 

Это не будет вызывать этот запрос, если перенаправить пользователя на myNewState

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