【发布时间】:2017-08-01 20:24:17
【问题描述】:
我想拥有多个routing 模块,以保持我的应用程序干净且易于阅读。我目前对SubComponent 使用延迟加载,但我不想这样做。所以我正在寻找一种方法来改变这一点。无论如何,这是当前工作的代码。
我有以下两个路由文件。
app-routing.module.ts:
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
const routes: Routes = [
{ path: '', component: HomeComponent },
{ path: 'sub', loadChildren: './sub/sub.module#SubModule' }
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
sub-routing.module.ts:
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
const routes: Routes = [
{ path: '', component: SubComponent, children: [
{ path: 'new', component: SubEditComponent }
] },
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
这种方式可以正常工作,但我不想对这个SubComponent 应用延迟加载。所以,理想情况下,我想将app-routing.module.ts 更改为:
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
const routes: Routes = [
{ path: '', component: HomeComponent },
{ path: 'sub', component: SubComponent }
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
这将不起作用并导致以下错误:
ERROR Error: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'sub/new'
Error: Cannot match any routes. URL Segment: 'sub/new'
SubComponent 的大小将大幅增长,出于我自己的原因,我不想应用延迟加载。那么无论如何,有没有办法在避免延迟加载的同时使用多个路由文件呢?
【问题讨论】:
标签: angular routing lazy-loading router angular-routing