如何使用loadChildren为angular2 lazyloading路由器创建plunker

如何使用loadChildren为angular2 lazyloading路由器创建plunker,angular,Angular,我面临的问题是如何为一个问题创建一个pluker。 当我使用{path:'mod1',loadChildren:'mod1.module#Mod1Module'}进行路由时。然后plunker尝试加载如下url: 但是它回来了,没有找到,所以我的plunker没有运行 以下是plunker URL: 更新 我已经能够用这个工具打开仪表板了。 当我尝试在模块1的第1页导航时,它显示了另一个错误。几个月前,我在angular router中发现了一个bug,并进行了演示。(错误现在已修复!) 无论

我面临的问题是如何为一个问题创建一个pluker。 当我使用
{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 { }