我目前正试图让它导航到/ minions组件以访问regular
插座,这意味着登录时要使用的插座。
如何使此重定向工作?
在loginhandler类(aka / login)中的ngOnInit中我有以下内容:
ngOnInit() {
this.CoreService.isLoggedin().subscribe(data => {
if (data) {
console.log("redirect... from login");
this.Router.navigate(["/minions"]);
}
});
}
但结果是:
Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'minions'
app.module.ts路由:
RouterModule.forRoot([
{
path : 'minions',
component: MinionsComponent,
outlet: 'regular'
},
{
path: '',
redirectTo : 'login' ,
pathMatch: 'full'
},
{
path: 'login',
component: LoginhandlerComponent,
},
]
)
体:
{{ user }}
<div *ngIf="user">
<div class="bodyWrapper container">
<div class="header">
</div>
<div class="sidebar left">
<ul>
<a [routerLink]="['/', {outlets: {'regular': 'minions'}}]" routerLinkActive="active">minions</a>
</ul>
</div>
<div class="middlecontent">
<div style="width: 100%; max-width: 860px; margin-left: auto; margin-right: auto; min-height: 400px;">
<router-outlet name="regular"></router-outlet>
</div>
</div>
<div class="sidebar right">
<div class="top">{{ user.username }}</div>
</div>
</div>
</div>
<div *ngIf="loggedin == false">
<a [routerLink]="['/', {outlets: {'outside': 'login'}}]" routerLinkActive="active">Login</a>
<div style="width: 100%; max-width: 860px; margin-left: auto; margin-right: auto; min-height: 400px;">
<router-outlet></router-outlet>
</div>
</div>
答案 0 :(得分:1)
在您的路由代码中,您经常使用outlet,因此您应该传递如下所示的值
this.router.navigate(['/', {outlets: {'regular': "minions"}}]);