ANGULAR-UI-ROUTER: Resolver estado desde URL

Estoy creando una aplicación con estados dinámicos, y a veces necesito resolver el nombre del estado desde la url.

por ejemplo: tengo/dashboard/user/12268 y necesito obtener el estado'dashboard.user'.

¿Hay alguna manera de hacer esto con las herramientas proporcionadas porui-router? No puedo saber cómo hacer esto ahora ...

Estoy haciendo una aplicación con carga de módulo dinámico con requireJS. Al principio no hay problema porque el usuario es enviado al estado de inicio de sesión. Después de iniciar sesión, uso require para cargar solo los estados a los que el usuario tiene acceso. Pero cuando el usuario vuelve a cargar la página, vuelvo a cargar los módulos y necesito resolver la URL a un estado, y ahí está el problema. Empecé a intentar con urlMatcherFactory pero no puedo resolverlos.

El estado se carga después de la resolución de la URL.

El flujo es (después de la actualización de la páginahttp://localhost:8090/index.html#/dashboard/user/12268):

arrancar la aplicación (sin estados)en este punto,ui-router ha sido cargadoobtener los estados a los que el usuario tiene acceso y registrarlos (estos estados están registradosdespués fase de configuración)Averigüe si tengo un estado que coincida con la URL dada para redirigir a allí. Aquí es donde estoy atrapado.

Para cargar estados después del arranque de la aplicación, he usado una variación deLa solución de Ben Nadel eso incluye estados y constantes.

Midata-main en RequireJS tiene este código de inicialización:

require.config({
    // REQUIREJS CONFIGURATION
});

require(['app'], function (app) {
    app.bootstrap(document);

    var ng = angular.injector(['ng']);
    var $window = ng.get('$window')
    var $q = ng.get('$q');

    var appStorage = $window.localStorage;
    var loadedManifests;

    try {
        loadedManifests = JSON.parse(appStorage.getItem('loadedManifests'));
    } catch(e) {
        loadedManifests = [];
    }

    if (!angular.isArray(loadedManifests) || loadedManifests.length === 0) {
        $q.all([
                app.loadManifest('login/manifest'), //loadMainfest function loads the states for login
                app.loadManifest('logout/manifest') //load states for logout
            ])
            .then(function () {
                app.injector.get('$rootScope').$evalAsync(function () {
                    app.injector.get('$state').go('login');
                });
            });
    } else {
        var promisesArray = [];

        for(var i = 0; loadedManifests[i]; i++) {
            promisesArray.push(app.loadManifest(loadedManifests[i])); //load all manifests registered on localstorage
        }

        $q.all(promisesArray).then(function(){
            //TODO: Stuck. Get URL from querystring and resolve to valid state, or redirect to /login
        });
    }
});

losloadManifest La función registra todos los elementos after-bootstrap en mi aplicación (servicios, fábricas, controladores, enrutadores, ...).

Gracias por tu ayuda,
Alx

Respuestas a la pregunta(4)

Su respuesta a la pregunta