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_Angular Router - Fatal编程技术网

Angular 在同一页面上使用多个应用进行路由

Angular 在同一页面上使用多个应用进行路由,angular,angular-router,Angular,Angular Router,我正在构建一个包含多个应用程序的应用程序 通常: <body> <app-header></app-header> <app-root></app-root> </body> 这是我的应用程序根目录路由: const批准:路由=[ {路径:“”,组件:HomeComponent} ]; 问题是,有两条路线会导致问题。如果我点击登录nav按钮,它将正确引导我进入LoginComponent,URL将变为ht

我正在构建一个包含多个应用程序的应用程序

通常:

<body>
    <app-header></app-header>
    <app-root></app-root>
</body>
这是我的
应用程序根目录
路由:

const批准:路由=[
{路径:“”,组件:HomeComponent}
];
问题是,有两条路线会导致问题。如果我点击登录
nav
按钮,它将正确引导我进入
LoginComponent
,URL将变为
http://localhost:4200/login
但是
家庭组件将保留,导致以下情况:

Home
Login
组件都在显示,即使URL是
/Login
。这是因为
approot
不知道url的修改,因为
/login
app header
的一部分

我相信解决方案是只使用一个
appRoutes
,它将同时管理
approot
appheader
组件路由。像这样:

const批准:路由=[
{路径:'',组件:HomeComponent},
{path:'login',component:LoginComponent},
{路径:'register',组件:RegisterComponent}
];
但是,
LoginComponent
RegisterComponent
在当前应用程序中不存在,因此无法正常工作


因此,解决方案要么是设法使其与主
appRoutes
一起工作,要么对
appheader
approot
使用两个不同的
appRoutes
,这两个应用程序都会意识到url的修改。

也许这不是最好的解决方案?:事实上:你应该简单地创建一个库,并可能将这些组件捆绑在一个角度模块中,您可以将其导入三个应用程序中。就像ng引导,或角材质,或任何其他角库一样。好吧!你能给我一个关于制作角度库并实现它的链接吗?谢谢,我不知道有这样的教程。我正在等待angular CLI支持此场景。