2016-04-13 5 views
0

runメソッド内の$http.getリクエストを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

関連する問題