Angular:导航路由器无法正常工作

时间:2019-06-27 13:20:53

标签: angular

即使我已经在'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']);
            });
}

4 个答案:

答案 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)

enter image description here

在复制的图像中,我突出显示了我的组件执行构造函数的时间和ngOnInit的时间。

从代码中可以看到,实际上几乎没有什么,只是调用导航到“ /”:

TaskModel

答案 3 :(得分:0)

我解决了。 在我的html中,调用更改页面功能的元素具有属性href =“#”