如何使用loadChildren为angular2 lazyloading路由器创建plunker
我面临的问题是如何为一个问题创建一个pluker。 当我使用如何使用loadChildren为angular2 lazyloading路由器创建plunker,angular,Angular,我面临的问题是如何为一个问题创建一个pluker。 当我使用{path:'mod1',loadChildren:'mod1.module#Mod1Module'}进行路由时。然后plunker尝试加载如下url: 但是它回来了,没有找到,所以我的plunker没有运行 以下是plunker URL: 更新 我已经能够用这个工具打开仪表板了。 当我尝试在模块1的第1页导航时,它显示了另一个错误。几个月前,我在angular router中发现了一个bug,并进行了演示。(错误现在已修复!) 无论
{path:'mod1',loadChildren:'mod1.module#Mod1Module'}
进行路由时。然后plunker尝试加载如下url:
但是它回来了,没有找到,所以我的plunker没有运行
以下是plunker URL:
更新
我已经能够用这个工具打开仪表板了。
当我尝试在模块1的第1页导航时,它显示了另一个错误。几个月前,我在angular router中发现了一个bug,并进行了演示。(错误现在已修复!) 无论如何,我使用loadChildren延迟加载模块。它可能会帮助您:
const routes: Routes = [
{path: 'emails', component: EmailsComponent},
{path: 'auxiliary', outlet: 'aux', component: AuxiliaryComponent},
{path: 'contacts', loadChildren: 'app/contacts/contacts.module#ContactsModule'},
{path: '**', redirectTo: 'emails'}
];
完整的PRUNKR:
编辑1:
我查看了一下您的Plunkr,发现它工作正常:以下是我所做的:
-将文件
mod1.module.ts
重命名为src/mod1.module.ts
-更改为
重定向到从重定向到:'/mod1/page1'
到重定向到:'/mod1'
(您没有声明路径'/mod1/page1'
,因此无法执行此操作
-使用这样的路径来延迟加载:{path:'mod1',loadChildren:app/mod1.module#Mod1Module'}
只需加载模块中的路由,您的应用程序应如下所示:
mod1.module.ts
@NgModule({
imports: [
Mode1RoutingModule, // <== add this line
FormsModule,
ReactiveFormsModule,
HttpModule,
CommonModule
],
declarations: [
routedComponents,
Mod1Page1Component,
Mod1Page2Component
],
providers: [
Mod1AbcService
]
})
export class Mod1Module { }
@NgModule({
进口:[
Mode1RoutingModule,//我在模块1中引入了Page1组件。但它仍然不起作用。无法匹配任何路由。URL段:“mod1/Page1”
正如我前面所说,您没有任何路由匹配此URL。或者您的Plunkr不是最新的。好吧,我想您误解了什么。您需要在src中定义一个路由/app.ts
路由
变量。然后请帮助我加载模块1的第1页作为我的第一页。更新问题将不会有什么进展。这是错误的。Plunkr确实使用了最新的angular2版本。要检查它,只需打开config.js
。您将看到:路径:{'npm:':'https://unpkg.com/“}
和映射:{'@angular/core':'npm:@angular/core/bundles/core.umd.js'}
。只需打开此文件,您将在标题中看到:@license Angular v2.2.4
您是对的。plunker正在使用最新版本。问题现在遗留在路由配置中。您正在尝试加载不存在的路由…您确实应该停止以不断更新您的答案。注释不会产生任何影响ny毫无意义,你失去了所有人:)。请在帖子末尾写上编辑1、编辑2等,或者删除并创建另一个答案。谢谢@Maxime。如果我需要再次更新答案,我会这样做!
@NgModule({
imports: [
Mode1RoutingModule, // <== add this line
FormsModule,
ReactiveFormsModule,
HttpModule,
CommonModule
],
declarations: [
routedComponents,
Mod1Page1Component,
Mod1Page2Component
],
providers: [
Mod1AbcService
]
})
export class Mod1Module { }