Я работаю над приложением, которому необходимо настроить маршруты на основе некоторого внешнего источника данных. Жизненный цикл приложения выглядит следующим образом:
- ng2 с App
- Приложение содержит заголовок, роутер-выход и нижний колонтитул
- маршрут по умолчанию настроен на homeComponent
- homeComponent имеет категорииListComponent
- categoriesListComponent вызывает метод get из категорийService
- categoriesService возвращает список категорий из api
- categoriesComponent отображает список и вводит новые маршруты для каждой категории обратно в приложение через routeConfigurator
На самом деле есть еще один слой абстракции с помощью routeService, но это не нужно для этого примера
Эта часть работает, так как мы начали на домашней странице, был создан api-вызов и создали routerConfigs для каждой категории. Поэтому, когда пользователь нажимает на категорию, маршрут уже настроен с использованием правильных метаданных категорииComponent + и отображается правильная информация.
Однако, если доступ к определенной странице категории напрямую, ng2 еще не имеет routerConfig для этого маршрута, так как вызов api ничего не возвращает, не говоря уже об обстреле. Ng2 просто предоставляет базовое приложение с заголовком, нижним колонтитулом и пустым маршрутизатором.
Единственное решение, о котором я могу думать, довольно "хакерское". Храните кешированный json файл на сервере приложений и загружайте его в исходный html, а затем вставьте его в службу в ng2 bootstrap/init. Таким образом, маршруты настраиваются перед ng2, даже для создания страницы.
Я спрашиваю о любых других возможных предложениях, возможно, о том, что у меня есть немного больше возможностей ng2, которые я могу прослушивать. Возможно, это было решено уже, и я просто не усовершенствовал свой google-fu.
Спасибо заранее.