ANGULAR-UI-ROUTER: разрешение состояния по URL

Я делаю приложение с динамическими состояниями, и иногда мне нужно разрешить имя состояния из URL.

например: у меня есть/dashboard/user/12268 и мне нужно получить государство'dashboard.user'.

Есть ли способ сделать это с помощью инструментов, предоставленныхui-router? Я не могу узнать, как это сделать прямо сейчас ...

Я делаю приложение с динамической загрузкой модуля с requireJS. В первый раз проблем нет, потому что пользователь отправляется в состояние входа в систему. После входа в систему я использую require для загрузки только тех состояний, к которым у пользователя есть доступ. Но когда пользователь перезагружает страницу, я загружаю модули снова, и мне нужно преобразовать URL в состояние, и возникает проблема. Я начал пытаться с urlMatcherFactory, но не могу их разрешить.

Состояние загружается после разрешения URL.

Поток есть (после обновления страницыhttp://localhost:8090/index.html#/dashboard/user/12268):

загрузите приложение (без состояний)с этой точки зрения,ui-router был загруженполучить состояния, к которым пользователь имеет доступ, и зарегистрировать их (эти состояния зарегистрированыпосле этап настройки)узнать, если у меня есть состояние, которое соответствует данному URL для перенаправления туда. Вот где я застрял.

Чтобы загрузить состояния после начальной загрузки приложения, я использовал вариантРешение бена наделя это включает в себя состояния и константы.

мойdata-main в RequireJS есть этот код инициализации:

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
        });
    }
});

loadManifest Функция регистрирует все элементы после загрузки в моем приложении (сервисы, фабрики, контроллеры, маршрутизаторы, ...).

Спасибо за вашу помощь,
Alx

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

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