остановите навигацию angular-ui-router до разрешения обещания

Я хочу предотвратить некоторое мерцание, которое происходит, когда происходит таймаут разработки рельсов, но Angular не знает до следующей ошибки авторизации ресурса.

Что происходит, так это то, что шаблон визуализируется, происходят некоторые ajax-вызовы ресурсов, а затем мы перенаправляемся на rails devine для входа в систему. Я предпочел бы делать ping для rails при каждом изменении состояния, и если сессия rails истекла, я немедленно перенаправлю ПЕРЕД тем, как шаблон будет обработан.

У ui-router есть разрешение, которое можно поставить на любой маршрут, но оно не кажется СУХИМЫМ.

Что у меня есть, так это Но обещание не выполнено, пока государство уже не перейдет.

$rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams){
        //check that user is logged in
        $http.get('/api/ping').success(function(data){
          if (data.signed_in) {
            $scope.signedIn = true;
          } else {
            window.location.href = '/rails/devise/login_path'
          }
        })

    });

Как я могу прервать изменение состояния до того, как новый шаблон будет отображен на основе результата обещания?

Ответы на вопрос(10)

Ваш ответ на вопрос