Angular 如何在应用程序中的多个位置设置路由。可能吗?

Angular 如何在应用程序中的多个位置设置路由。可能吗?,angular,angular2-routing,Angular,Angular2 Routing,我有一个Angular 2应用程序,它被另一个应用程序作为组件库使用。被消费的应用程序正在使用路由,它们在指定的模块中进行配置,一切正常 问题是,导入此库的消费者应用程序除了库应用程序中定义的路由之外,还需要更多路由。因此,我需要在消费者应用程序中设置这些路由。有办法在多个位置定义路由吗?选中,您可以动态重新定义路由 router.resetConfig([ // ... ]); 是的,您可以在任何模块中设置路线。我这里有一个例子:在APM最终更新文件夹中 我在app.module.ts和

我有一个Angular 2应用程序,它被另一个应用程序作为组件库使用。被消费的应用程序正在使用路由,它们在指定的模块中进行配置,一切正常

问题是,导入此库的消费者应用程序除了库应用程序中定义的路由之外,还需要更多路由。因此,我需要在消费者应用程序中设置这些路由。有办法在多个位置定义路由吗?

选中,您可以动态重新定义路由

router.resetConfig([
  // ...
]);

是的,您可以在任何模块中设置路线。我这里有一个例子:在APM最终更新文件夹中

我在app.module.ts和product.module.ts中都有路由。然后,我们使用imports语句拉入路由

  imports: [
    BrowserModule,
    HttpModule,
    RouterModule.forRoot([
      { path: 'welcome', component: WelcomeComponent },
      { path: '', redirectTo: 'welcome', pathMatch: 'full' },
      { path: '**', redirectTo: 'welcome', pathMatch: 'full' }
    ]),
    ProductModule
  ],

是的,我们可以在任何模块中设置路线。这就是我们在Angular应用程序中设置延迟加载的方式

我命令查看路由设置和延迟加载,您可以检查我的回购

应用模块代码

@NgModule({
  bootstrap: [ AppComponent],
  declarations: [
    AppComponent,CompetitionComponent,DropdownDirective
  ],
  imports: [
    BrowserModule,
    FormsModule,
    HttpModule,
    RouterModule,
    routing,
    //TableModule, Omitted for webpack lazy loading
    //TeamModule, Omitted for webpack lazy loading
    MaterialModule.forRoot(),
    LoadingAnimateModule.forRoot(),// temporary solution to loading
    ProgressBarModule
  ],
  providers:[CompetitionService,LoadingAnimateService ]// temporary solution to loading
})
export class AppModule {

}

谢谢你提供了一个具体的例子。看起来这些路由都使用相同的路由器出口。这是真的吗?这些特定的是,但他们不必这样做。我这里有一个子路由器出口和辅助路由器出口的示例: