ui-router angular: obtenha informações sobre o $ state do toState em resolução

Atualizar: isso deve ser possível no roteador-ui angular a partir de1.0.0alpha0. Veja as notas de versãohttps://github.com/angular-ui/ui-router/releases/tag/1.0.0alpha0 e a questãohttps://github.com/angular-ui/ui-router/issues/1018 Eu criei.

Gostaria de acessar o nome do estado e outros atributos que o aplicativo está navegando usando o ui-router angular ao trabalhar na resolução.

O motivo: desejo carregar alguns dados do usuário (incluindo seus direitos de acesso) de forma assíncrona antes de permitir que o aplicativo entre nessa página.

No momento, isso não é possível porque a injeção de $ state nos pontos de resolução para o estado em que você está navegando, e não para o que você está navegando.

Eu sei que posso:

obtenha o toState em outro lugar com $ rootScope ('$ stateChangeStart') e salve-o no meu serviço de configurações, por exemplo. Mas acho que é um pouco bagunçado.codifique o estado na resolução, mas não quero reutilizar minha resolução para todas as páginas

Também criei um problema no github do ui-router (+ 1 se você estiver interessado!):https://github.com/angular-ui/ui-router/issues/1018

Aqui está o meu código até agora. Qualquer ajuda apreciada!

.config(function($stateProvider) {

    $stateProvider.state('somePage', {
        // ..
        resolve: {
            userData: function($stateParams, $state, Settings) {
                return Settings.getUserData() // load user data asynchronously
                    .then(function (userData) {
                        console.log($stateParams);
                        console.log($state);
                        // Problem: $state still points to the state you're navigating away from
                    });
            }
        }
    });
});

questionAnswers(2)

yourAnswerToTheQuestion