在单个角度应用程序中路由多个项目

Ran*_*dan 6 routing angular-ui-router angular2-routing angular

我有一个主应用程序和一个子应用程序。单击主应用程序中的锚链接时,我需要显示子应用程序。但这不起作用。

项目结构:

one-app
-project
--scrapper
---e2e
---src
-src
Run Code Online (Sandbox Code Playgroud)

在子应用程序的路由模块中,我添加了如下路由

const routes: Routes = [
  { path: '', component: HomeComponent}
];
Run Code Online (Sandbox Code Playgroud)

和子应用程序的应用程序组件

<router-outlet></router-outlet>
Run Code Online (Sandbox Code Playgroud)

在子应用的应用模块中,我将下面的代码附加到现有代码中

@NgModule({})
export class ScrapperSharedModule {
  static forRoot(): ModuleWithProviders {
    return {
      ngModule: AppModule,
      providers: []
    };
  }
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,一切都很好。我猜!!

现在,在父应用程序的路由中,我添加了以下代码

{ path: 'scrapper',
    loadChildren: '../../projects/scrapper/src/app/app.module#ScrapperSharedModule'
}
Run Code Online (Sandbox Code Playgroud)

在父应用的应用模块中,我将以下代码导入了ngmodule部分

imports: [
...
ScrapperSharedModule.forRoot(),
]
Run Code Online (Sandbox Code Playgroud)

现在,在我父应用程序的一个组件中,我有一个锚标记

<a routerLink="/scrapper">
Run Code Online (Sandbox Code Playgroud)

当我单击此链接时,没有任何反应。我的意思是网址正在更改,但浏览器显示的是父应用程序而不是子应用程序。我在这里做错了什么?

Nec*_*maz 6

如果我正确理解了问题。您正试图在同一个端口上运行两个不同的项目。但这是不可能的,因为您在构建项目时定义了不同的工作空间和操作方法。有关更多信息,我建议您查看相关文章

如果您不想处理两个不同的项目,我认为这将是正确的方法。通过将所有项目组合在一个应用程序下,您可以使用延迟加载方法轻松地引导和加载它们。有关更多信息,我建议您查看相关文档