Angular 错误:无法匹配任何路由。URL段:';主页';

Angular 错误:无法匹配任何路由。URL段:';主页';,angular,angular-router,Angular,Angular Router,我想在单击“登录”按钮后转到主页,但我不断收到错误: 错误:无法匹配任何路由。URL段:“主页” 以下是我的路线: { path: 'homePage', component: HomePageComponent, outlet:'homePage' }, { path: 'login', component:LoginComponent }, { path: '', redirectTo: '/login', pathMatch: 'full' }

我想在单击“登录”按钮后转到主页,但我不断收到错误:

错误:无法匹配任何路由。URL段:“主页”

以下是我的路线:

{
  path: 'homePage',
  component: HomePageComponent,
  outlet:'homePage'
},
{ 
  path: 'login',
  component:LoginComponent
},  
{ 
  path: '',
  redirectTo: '/login',
  pathMatch: 'full'
} 
这是要单击的按钮:

<button routerLink="homePage" id="login" md-button>Log in</button>
<router-outlet name="homePage"></router-outlet>
登录
尝试更改

<button routerLink="homePage">


您必须告诉路由器在您指定的插座内布线,如下所示:

<button [routerLink]="[{ outlets:{ homePage: ['homePage']} }]">
  Edit
</button>
对于路由器链路,只需使用

<button routerLink="/homePage></button>

尝试使用name outlet方法[routerLink]=“[{outlets:{homePage:['homePage']}]好的,现在它会显示主页,但登录表单不会消失。确定,因为您的
登录
路由是默认路由(您正在重定向到它)。你确定要使用命名的路由器出口吗?对我来说,听起来你只是想要一个未命名的路由器出口。@annie因为你为主页创建了新的路由器出口,所以它一直存在。在你的情况下,你的app.component.html中应该只有一个路由器出口。所以这个答案是正确的,但你想实现其他目标。你应该了解路由和命名出口是如何工作的。好吧,我不再使用命名出口,但登录表单仍然不会消失。你的应用程序根组件应该是某种应用程序组件,因为你的登录只是一个组件,它显示在特定的路由上,而不是所有时间。因此你必须更改你的应用程序结构以获得某种类型的应用程序组件,如根,其模板中有一个
<router-outlet></router-outlet>
{
    path: 'homePage',
    component: HomePageComponent
}
<button routerLink="/homePage></button>