Я пытаюсь определить свое дерево маршрутов таким образом, чтобы через дерево можно было пройти произвольный путь. Приложение представляет собой обозреватель базы данных, в котором вы можете перемещаться от одной таблицы, отображаемой с использованием компонента списка, к компоненту подробностей, а затем, после выбора этого элемента подробностей, вы получаете свойства навигации, которые позволяют вам видеть связанные столы. Мы даем пользователю отправную точку, но путь, который они проходят через базу данных, может быть совершенно случайным. Лучшее, что я могу придумать, - это определить деревья маршрутов как константы в функциональных модулях, которые представляют каждую таблицу, а затем импортировать маршруты свойств навигации как дочерние для каждой. Кажется, это работает за исключением одного сценария ... рекурсивных маршрутов. Рекурсивные бомбы определения для очевидной блочной переменной, используемой до объявления ... Есть ли способы обойти это?
Пример,
const batchRoutes = [
{
path: '',
component: BatchListComponent,
resolve: { data: BatchesResolver },
data: {
breadcrumb: 'Batches',
},
},
{
path: 'new',
component: BatchAddComponent,
data: {
breadcrumb: 'Add a New Batch',
},
},
{
path: ':batchId',
resolve: { item: BatchResolver },
data: {
breadcrumb: 'Batches',
},
children: [
{ path: '', redirectTo: 'edit', pathMatch: 'full' },
{
path: 'edit',
component: BatchDetailsComponent,
resolve: { breadcrumb: BatchBreadcrumbResolver },
},
{
path: 'childbatches',
children: batchRoutes,
},
],
},
];