我已经尝试了[routerLink]的所有可能的语法,我似乎无法让它工作 . 这是我的路线:
const ROUTES = [
{
path: '',
redirectTo: 'home',
pathMatch: 'full'
},
{
path: 'home',
component: HomeComponent
},
{
path: 'sign-in',
component: SignInComponent,
outlet: 'signin'
},
{
path: 'register',
component: RegisterComponent
},
{
path: 'projects',
component: ProjectsComponent
}
];
主模板有:
<header class="header">
<header class="header">
<h1>{{ title }}</h1>
<utility-navigation></utility-navigation>
<navigation></navigation>
<router-outlet name="signin"></router-outlet>
</header>
<main>
<router-outlet></router-outlet>
</main>
此链接将组件弹出到“登录”插座:
<a class="nav-link" [routerLink]="[{ outlets: { signin: ['sign-in'] } }]">Sign in</a>
此链接清空“登录”插座并路由到主插座中的“注册”组件:
<a class="nav-link" [routerLink]="[{ outlets: { primary: ['register'], signin: null } }]">Register</a>
但我希望当前位于 /register
路由的用户能够单击链接转到 /home
并在辅助插座中看到'sign-in'路由 . 我试过了:
<a [routerLink]="[{ outlets: { primary: 'home', signin: 'sign-in' }}]">
和
<a [routerLink]="[{ outlets: { primary: ['home'], signin: ['sign-in'] }}]">
和
<a [routerLink]="[{ outlets: { primary: 'home', signin: ['sign-in'] }}]">
和
<a [routerLink]="['/home', { outlets: { signin: ['sign-in'] }}]">
而且它们都会导致“无法匹配任何路线”的错误 . 我知道'登录'路线有效,因为当我点击上面的“登录”链接时,我看到了它 . 任何建议,将不胜感激 .