【发布时间】:2018-01-31 12:36:25
【问题描述】:
我想在 Angular 2+ 应用程序中延迟加载模块。为此,在“app-routing.module”文件中,我有以下代码。
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { AbcdComponent } from './abcd/abcd.component';
const routes: Routes = [
{ path: 'portfolio', loadChildren: './lazy.module#LazyModule'},
{ path: 'dashboard', loadChildren: './lazy.module#LazyModule'},
{ path: 'abcd', component:AbcdComponent}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule],
declarations: [
AbcdComponent
]
})
export class AppRoutingModule { }
现在,在惰性模块中,我有以下代码:
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { LazyParentComponent } from './lazy-parent/lazy-parent.component';
import { LazyChildComponent } from './lazy-child/lazy-child.component';
import { Routes, RouterModule } from '@angular/router';
const routes: Routes = [
{ path: 'load-me', component: DashBoardComponent },
{ path: 'load-you', component: PortfolioComponent }
];
@NgModule({
imports: [
CommonModule,
RouterModule.forChild(routes)
],
declarations: [
LazyParentComponent,
LazyChildComponent,
]
})
export class LazyModule { }
这足以将https://example.com/portfolio/load-me 路由到 DashBoardComponent 并将https://example.com/portfolio/load-you 路由到 PortfolioComponent。
但问题是我想要一个惰性模块,对于像 https://example.com/portfolio 这样的路由,我想指向 PortfolioComponent,https://example.com/dashboard 指向 DashBoardComponent。两个组件都应该延迟加载。另外,两个组件都在同一个模块中。我通过互联网搜索但找不到任何解决方案。感谢任何帮助。
【问题讨论】:
标签: javascript angular lazy-loading angular-router angular-module