enrutador ui angular: obtenga $ state info de toState en resolución

Actualizar: esto debería ser posible en angular-ui-router a partir de1.0.0alpha0. Ver las notas de la versiónhttps://github.com/angular-ui/ui-router/releases/tag/1.0.0alpha0 y el problemahttps://github.com/angular-ui/ui-router/issues/1018 Yo creé.

Me gustaría acceder al nombre del estado y otros atributos a los que la aplicación está navegando usando el enrutador ui angular al trabajar en la resolución.

La razón: quiero cargar algunos datos de usuario (incluidos sus derechos de acceso) de forma asincrónica antes de permitir que la aplicación ingrese a esa página.

Actualmente, esto no es posible porque inyectar $ state en los puntos de resolución al estado en el que está navegando, no al que está navegando.

Sé que puedo:

obtener el toState en otro lugar con $ rootScope ('$ stateChangeStart') y guardarlo en mi servicio de configuración, por ejemplo. Pero creo que es un poco desordenado.codificar el estado en la resolución, pero no quiero reutilizar mi resolución para todas las páginas

También creé un problema en el github ui-router (¡Por favor + 1 si estás interesado!):https://github.com/angular-ui/ui-router/issues/1018

Aquí está mi código hasta ahora. Cualquier ayuda 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
                    });
            }
        }
    });
});

Respuestas a la pregunta(2)

Su respuesta a la pregunta