Динамическая маршрутизация на основе внешних данных
Я работаю над приложением, которому необходимо настроить маршруты на основе какого-либо внешнего источника данных. Жизненный цикл приложения выглядит следующим образом:
ng2 inits с приложениемПриложение содержит заголовок, маршрутизатор-выход и нижний колонтитулмаршрут по умолчанию настроен на homeComponentУ homeComponent есть категорииListComponentcategoryListComponent вызывает метод get из categoryServiceCategoriesService возвращает список категорий из APICategoriesComponent отображает список и внедряет новые маршруты для каждой категории обратно в приложение через RoutesConfigurator.На самом деле есть еще один уровень абстракции с routService, но в этом примере он не нужен
Эта часть работает, так как мы начали с домашней страницы, был выполнен вызов API и созданrouterConfigs
для каждой категории. Поэтому, когда пользователь нажимает на категорию, маршрут уже настроен с правильнымcategoryComponent
+ metadata
и им показывают правильную информацию.
Однако, если к конкретной странице категории обращаются напрямую, ng2 не имеетrouterConfig
для этого маршрута еще, поскольку вызов API ничего не дал, не говоря уже о том, чтобы сработал. Ng2 просто отображает базовое приложение с заголовком, нижним колонтитулом и пустым маршрутизатором-выходом.
Единственное решение, которое я могу придумать, это довольно "хакерский". Сохраните кэшированный файл json на сервере приложений и загрузите его в исходный html, а затем вставьте его в службу в загрузочном каталоге ng2 / init. Таким образом, маршруты настраиваются еще до того, как ng2 создаст страницу.
Я прошу любые другие возможные предложения, возможно, кто-то с немного большим опытом работы с ng2, в который я могу вступить. Может быть, это уже решено, и я просто недостаточно усовершенствовал свое google-fu.
Заранее спасибо.