使用配置和不配置路由的模块

时间:2017-04-18 21:43:54

标签: angular

我想在两种不同的情况下重用我的模块。一个案例我需要指定路由,而另一个我不需要路由。

我有以下模块

const ROUTES: Routes = [
    { path: '', component: MyComponent }
];

@NgModule({
    imports: [CommonModule,
        RouterModule.forChild(ROUTES),
        RouterModule
    ],

    declarations: [
        MyComponent
    ],
    exports: [MyComponent],
    providers: []
})
export class MyModule {
}

我尝试使用其他名称创建另一个模块,但没有设置路由,但这并不重要,只会将其配置为首先加载的模块。

是否可以使用配置有和没有路由的相同模块?

1 个答案:

答案 0 :(得分:2)

您需要创建没有Routes的SharedModule来声明和导出可共享组件+使用只导入此SharedModule的路由创建WithRoutesModule模块。

@NgModule({
  imports: [
    RouterModule,
    SharedModule
  ],
  declarations: [something]
})
export class WithRoutesModule {
}


@NgModule({
  imports: [
    somethingd
],    
declarations: [
  SharedComponent
],
  exports: [SharedComponent]
})
export class SharedModule {
}