Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 使用已配置路由和未配置路由的模块_Angular - Fatal编程技术网

Angular 使用已配置路由和未配置路由的模块

Angular 使用已配置路由和未配置路由的模块,angular,Angular,我想在两种不同的情况下重用我的模块。一种情况下,我需要指定的路由,而另一种情况下,我不需要路由 我有以下模块 const ROUTES: Routes = [ { path: '', component: MyComponent } ]; @NgModule({ imports: [CommonModule, RouterModule.forChild(ROUTES), RouterModule ], declarations:

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

我有以下模块

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

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

    declarations: [
        MyComponent
    ],
    exports: [MyComponent],
    providers: []
})
export class MyModule {
}
我尝试用另一个名称创建另一个模块,但没有设置路由,但这并不重要,它只会将其配置为首先加载的模块


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

您需要创建不包含声明和导出可共享组件的路由的SharedModule+创建包含仅导入此SharedModule的路由的WithRoutes模块

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


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

您需要创建SharedModule而不使用声明和导出可共享组件的路由+创建WithRouteModule而使用仅导入此SharedModule的路由

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


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