即使我已经在'bacheca'上,我的角度应用程序也总是将我发送回根目录
const appRoutes: Routes = [
{
path: '',
component: MainComponent,
/*canActivate: [AuthGuard],*/
canActivateChild: [AuthGuard],
children: [
{
path: 'bacheca',
component: BachecaComponent
},
{
path: '',
component: TicketComponent
}
]
},
{ path: 'login', component: LoginComponent },
// otherwise redirect to home
{ path: '**', redirectTo: '' }
];
//--------------
this.router.navigate(['bacheca']); //not work
代替html href =“#/ bacheca”可以正常工作!
如果我在http订阅中使用它,效果很好!!!!
out(){
返回this.http.post(GlobalService.endPoint + /appLogout
,null);
}
logout() {
this.out()
.pipe(first())
.subscribe(
data => {
//localStorage.removeItem('currentUser');
//this.currentUserSubject.next(null);
this.router.navigate(['/bacheca']);
//this.router.navigate(['/Login']);
},
error => {
localStorage.removeItem('currentUser');
this.currentUserSubject.next(null);
this.router.navigate(['/login']);
});
}
答案 0 :(得分:0)
不过尝试一下。
this.router.navigate(['','bacheca']);
编辑:您的路线定义有点偏离道路。如果要使路径为空的路由具有子路由,其中一个子路径也为空,则不应定义组件。
const appRoutes: Routes = [
{
path: '',
/*canActivate: [AuthGuard],*/
canActivateChild: [AuthGuard],
children: [
{
path: 'bacheca',
component: BachecaComponent
},
{
path: '',
component: TicketComponent
}
]
},
{ path: 'login', component: LoginComponent },
// otherwise redirect to home
{ path: '**', redirectTo: '' }
];
答案 1 :(得分:0)
尝试使用此:
this.router.navigate(['/bacheca']);
答案 2 :(得分:0)
在复制的图像中,我突出显示了我的组件执行构造函数的时间和ngOnInit的时间。
从代码中可以看到,实际上几乎没有什么,只是调用导航到“ /”:
TaskModel
答案 3 :(得分:0)
我解决了。 在我的html中,调用更改页面功能的元素具有属性href =“#”