2017-04-19 63 views
1

我正在使用角4.0.2。我想为我的应用程序创建一个可重用的布局模块,其中包含一些带有导航栏,边栏等的HTML布局。模板包含路由器插座,但我不知道如何从外部注入路由。如何注入外部角模块的路由

这里就是我想:

@NgModule({ 
    imports: [ 
     CommonModule, 
     FormsModule, 
     RouterModule 
    ], 
    declarations: [Layout, Sidebar, Navbar] 
}) 
export class LayoutModule { 
    static forRoot(routes): ModuleWithProviders { 
     return { 
      ngModule: LayoutModule, 
      providers: [provideRoutes(routes)] 
     } 
    } 
} 

然后在application.module我会导入模块提供(专用)路线:

LayoutModule.forRoot(PagesRoutes) 

遗憾的是它不工作。我的路线是没有登记,我得到404

然而,当我将其更改为:

@NgModule({ 
    imports: [ 
     CommonModule, 
     FormsModule, 
     RouterModule 
    ], 
    declarations: [Layout, Sidebar, Navbar], 
    providers: [provideRoutes(PagesRoutes)] 

}) 
export class LayoutModule { 
} 

然后路线做工精细,只是它们不是注入的依赖。

任何想法如何做到这一点?

回答

0

我能找到解决问题的解决方法。

在我的客户端应用程序我有一个简单包装的外部LayoutModule

@NgModule({ 
    imports: [ 
     RouterModule, 
     LayoutModule 
    ], 
    providers: [provideRoutes(PagesRoutes)] 

}) 
export class LayoutWrapperModule { 
} 

注射路线这样的作品。