Проблема с лениво загруженным angularjs дочерним модулем с маршрутами (состояниями) - PullRequest
1 голос
/ 28 мая 2019

Я работаю с приложением angularjs + ui-router, которое является приложением оболочки моего другого приложения angularjs (в основном header + footer + sidenav). Каждое разрабатываемое мной приложение компилируется и хранится в виде библиотеки npm, которая в конечном итоге используется как зависимость в package.json моего приложения оболочки. когда загружается приложение оболочки, оно решает, какое из моих других приложений должно отображаться внутри как содержимое пользовательского интерфейса в соответствии с состоянием, определенным в приложении оболочки.

Это определения состояния приложения оболочки:

    $stateProvider
    .state('content', {
        url: '/:appName', ...

Есть некоторые другие состояния, определенные в дочернем приложении, которое использует состояние «содержимого» в качестве родительского состояния, например:

$stateProvider.state('child', {
url: '/child1',
parent: 'content',
component: 'childComponent'});

Маршрутизация работает, как ожидается, только после того, как все уже загружено. Проблема заключается в том, что при каждом обновлении браузера приложение оболочки сначала загружает, в этот момент, например, следующий маршрут: http://localhost:8000/#/childapp1/chid1 не является допустимым маршрутом, поскольку дочерние маршруты (состояния) еще не загружены. Единственное решение, с которым я пришел, - это сохранить URL-адрес в глобальной переменной, а затем использовать его в качестве шаблона «обратный URL-адрес», который работает. Мне было интересно, есть ли лучшее решение для моей проблемы.

Ценю вашу помощь,

N

...