Anonymous
Угловые отдельные компоненты с вложенным ребенком и маршрутизацией
Сообщение
Anonymous » 23 июн 2025, 07:30
Я рефакторирую свою существующую кодовую базу в автономную архитектуру. Я сталкиваюсь с проблемой с маршрутизацией. Ниже приведен мой текущий модуль маршрута < /p>
Код: Выделить всё
const ROUTES: Routes = [
{
path: '',
component: ParentComponent,
children: [
{
path: 'alt',
component: HomePageComponent,
children: [
{
path: 'abc',
loadChildren: () =>
import(
'
'
).then((m) => m.AbcModule)
},
{
path: 'xyz',
loadChildren: () =>
import('path to xyz module').then(
(m) => m.XyzModule
)
},
]
}
]
}
];
< /code>
маршрутизация модуля ABC < /h2>
const ROUTES: Routes = [
{
path: '',
component: AbcComponent,
children: [
{
path: 'Child1',
component: Child1Component
},
{
path: 'child2',
component: Child2Component
},
{
path: '',
pathMatch: 'full',
redirectTo: 'child1'
}
]
}
];
< /code>
Вышеуказанные два являются частью моего MFE и имеют боковую полосу, которая находится в родительском проекте со следующей конфигурацией маршрутизации < /p>
[
{
label: 'ABC',
route: `/alt/abc`,
},
{
label: 'Xyz',
route: `/alt/xyz`,
}
];
< /code>
Это работает, как и ожидалось в существующей архитектуре Ngmodule. Проблема возникает, когда я изменил его на автономную архитектуру со следующими маршрутами и main.ts
Aapp.route.ts
Код: Выделить всё
export const APP_ROUTES: Routes = [
{
path: '',
component: AppComponent,
children: [
{
path: 'alt',
loadChildren: () =>
import('
').then((m) => m.PARENT_ROUTES)
}
]
}
];
< /code>
маршрут родительского компонента < /h2>
export const PARENT_ROUTES: Routes = [
{
path: '',
loadComponent: () =>
import('./parent.component').then((m) => m.ParentComponent),
children: [
{
path: 'abc',
loadChildren: () =>
import('').then((m) => m.ROUTES)
},
{
path: '',
redirectTo: 'abc',
pathMatch: 'full'
},
{
path: '**',
redirectTo: 'error',
pathMatch: 'full'
}
]
}
];
< /code>
маршрут компонента ABC < /h2>
export const ROUTES: Routes = [{
path: '',
loadComponent: () =>
import('').then(
(m) => m.ABCComponent
),
children: [
{
path: '',
pathMatch: 'full',
redirectTo: 'child1'
},
{
path: 'child1',
loadComponent: () =>
import('path to child 1 component').then((m) => m.Child 1 component),
}
]
}
];
Я только что добавил маршруты только для ABC и его ребенка.
. Но его навигация только до
[/b]. Я добавил в ParentComponent, также компонентах ABC.
Код: Выделить всё
bootstrapApplication(AppComponent, appConfig)
Также я добавил Providerouter (app_routes) in app.config.ts .
Подробнее здесь:
https://stackoverflow.com/questions/796 ... nd-routing
1750653015
Anonymous
Я рефакторирую свою существующую кодовую базу в автономную архитектуру. Я сталкиваюсь с проблемой с маршрутизацией. Ниже приведен мой текущий модуль маршрута < /p> [code] const ROUTES: Routes = [ { path: '', component: ParentComponent, children: [ { path: 'alt', component: HomePageComponent, children: [ { path: 'abc', loadChildren: () => import( ' ' ).then((m) => m.AbcModule) }, { path: 'xyz', loadChildren: () => import('path to xyz module').then( (m) => m.XyzModule ) }, ] } ] } ]; < /code> маршрутизация модуля ABC < /h2> const ROUTES: Routes = [ { path: '', component: AbcComponent, children: [ { path: 'Child1', component: Child1Component }, { path: 'child2', component: Child2Component }, { path: '', pathMatch: 'full', redirectTo: 'child1' } ] } ]; < /code> Вышеуказанные два являются частью моего MFE и имеют боковую полосу, которая находится в родительском проекте со следующей конфигурацией маршрутизации < /p> [ { label: 'ABC', route: `/alt/abc`, }, { label: 'Xyz', route: `/alt/xyz`, } ]; < /code> Это работает, как и ожидалось в существующей архитектуре Ngmodule. Проблема возникает, когда я изменил его на автономную архитектуру со следующими маршрутами и main.ts [/code] Aapp.route.ts [code]export const APP_ROUTES: Routes = [ { path: '', component: AppComponent, children: [ { path: 'alt', loadChildren: () => import(' ').then((m) => m.PARENT_ROUTES) } ] } ]; < /code> маршрут родительского компонента < /h2> export const PARENT_ROUTES: Routes = [ { path: '', loadComponent: () => import('./parent.component').then((m) => m.ParentComponent), children: [ { path: 'abc', loadChildren: () => import('').then((m) => m.ROUTES) }, { path: '', redirectTo: 'abc', pathMatch: 'full' }, { path: '**', redirectTo: 'error', pathMatch: 'full' } ] } ]; < /code> маршрут компонента ABC < /h2> export const ROUTES: Routes = [{ path: '', loadComponent: () => import('').then( (m) => m.ABCComponent ), children: [ { path: '', pathMatch: 'full', redirectTo: 'child1' }, { path: 'child1', loadComponent: () => import('path to child 1 component').then((m) => m.Child 1 component), } ] } ]; [/code] Я только что добавил маршруты только для ABC и его ребенка.[code]alt/abc/child1[/code] . Но его навигация только до [b][code]alt/abc[/code] [/b]. Я добавил в ParentComponent, также компонентах ABC.[code]bootstrapApplication(AppComponent, appConfig) [/code] Также я добавил Providerouter (app_routes) in app.config.ts . Подробнее здесь: [url]https://stackoverflow.com/questions/79675610/angular-stand-alone-components-with-nested-child-and-routing[/url]