Я работаю с приложением 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