如何延迟加载 children 路由?

How to lazy load children routes?

我想这样配置我的路由:

const routes: Routes = [
    {
        path: ':angebotsNummer',
        loadChildren: './uebersicht/uebersicht.module#UebersichtModule',
        resolve: { angebotReadModel: AngebotReadModelResolver },
        children: [
            {   path: 'konditionen',
                loadChildren: './konditionen/konditionen.module#KonditionenModule',
            }
        ]
    }
]

这将导致 child url :angebotsNummer/konditionen

这样做,angular 告诉我: Error: Invalid configuration of route ':angebotsNummer': children and loadChildren cannot be used together

所以这行不通。 如果有的话,我如何在 angular 中延迟加载 childrenroutes?

如果你有

    loadChildren: './uebersicht/uebersicht.module#UebersichtModule',

然后你在那个模块中有一个内部路由器

component: UbersichtComponent

组件是能够携带子组件的组件,loadChildren 将您路由到嵌套模块,但是 component-loader 是能够容纳自己的子组件的组件

在这种情况下,您将在惰性模块路由中添加该配置 (Uebersicht-routing.module.ts)

const routes: Routes = [
{
    path: '',
    children: [
        {   path: 'konditionen',
            loadChildren: './konditionen/konditionen.module#KonditionenModule',
        }
    ]
}]

并删除您拥有的子部分:

const routes: Routes = [
    {
        path: ':angebotsNummer',
        loadChildren: './uebersicht/uebersicht.module#UebersichtModule',
        resolve: { angebotReadModel: AngebotReadModelResolver }
    }]

您可以按如下方式操作:

const routes: Routes = [
    {
        path: ':angebotsNummer',
        component: 'UebersichtComponent',
        resolve: { angebotReadModel: AngebotReadModelResolver },
        children: [
            {   path: 'konditionen',
                loadChildren: () => import('./+konditionen/konditionen.module').then(m => m.KonditionenModule),
            }
        ]
    }
]