我有2条使用loginOutlet
outlet的不同路线:
密码重置组件
export const passwordResetFinishRoute: Route = {
path: 'reset/finish', children: [
{
path: '',
component: PasswordResetFinishComponent,
data: {
pageTitle: 'Password'
},
outlet: 'loginOutlet', pathMatch: 'full'
}
]
};
登录组件
export const routes: Routes = [
{path: 'login', children: [
{path: '', component: LoginComponent, outlet: 'loginOutlet', pathMatch: 'full'}
]}
];
密码重置操作完成后,我想使用以下链接显示LoginComponent
:
<a class="alert-link" [routerLink]="['/login']">sign in</a>.
我收到以下错误:
Error: Cannot activate an already activated outlet
如何在LoginComponent
内加载loginOutlet
?
答案 0 :(得分:1)
事实证明,当用户未登录时,问题的根本原因是缺少主路由器插座:
<div *nfIf="loggedIn()" class="content-wrapper">
<router-outlet></router-outlet>
</div>
我更改了主模板如下:
<div [ngClass]="loggedInClass()"">
<router-outlet></router-outlet>
</div>
,添加loggedInClass()
,在用户登录时返回正确的css类。
然后,路由配置开始正常运行。
答案 1 :(得分:0)
从路由器出口中删除结构指令