Angular路由器.navigate在canActivate()中不适用于子路由
创始人
2024-10-28 02:32:57
0

这是因为当使用navigate方法时,路由守卫会阻止导航到未激活的子路由。为了解决这个问题,我们需要使用路由器的navigateByUrl方法来导航到子路由。

以下是示例代码:

import { Router, ActivatedRoute } from '@angular/router';
import { Injectable } from '@angular/core';
import { CanActivate } from '@angular/router';

@Injectable()
export class AuthGuard implements CanActivate {

  constructor(private router: Router, private route: ActivatedRoute) {}

  canActivate() {
    if (isAuthenticated()) {
      return true;
    } else {
      // Navigate to login page with the current URL as a query string parameter
      this.router.navigateByUrl('/login?returnUrl=' + this.route.snapshot.url.join('/'));
      return false;
    }
  }
}

在这个示例中,我们使用了navigateByUrl方法来导航到/login子路由,同时将当前URL作为查询字符串参数一起传递。这样,用户在成功登录后将返回之前的URL。

我们需要确保在定义路由时将子路由的定义放在父路由的后面,以确保子路由成功地激活。例如:

const appRoutes: Routes = [
  { path: '', component: HomeComponent },
  { path: 'login', component: LoginComponent },
  { path: 'dashboard', component: DashboardComponent, canActivate: [AuthGuard], children: [
    { path: 'profile', component: ProfileComponent }
  ]},
  { path: '**', component: PageNotFoundComponent }
];

@NgModule({
  imports: [
    RouterModule.forRoot(appRoutes)
  ]
})
export class AppRoutingModule { }

在这个例子中,子路由/profile是由父路由/dashboard激活的。

相关内容

热门资讯

玩家亲测!川川云脚本破解!切实... 玩家亲测!川川云脚本破解!切实是有辅助app(有挂方略)1、玩家亲测!川川云脚本破解!切实是有辅助a...
这一现象值得深思!功夫川嘛辅助... 这一现象值得深思!功夫川嘛辅助器是真的假的!都是确实有辅助挂(有挂讲解)1、功夫川嘛辅助器是真的假的...
分享实测!小闲川南宜宾辅助!总... 分享实测!小闲川南宜宾辅助!总是真的是有辅助神器(确实有挂)1、很好的工具软件,可以解锁游戏的小闲川...
科技介绍!随意玩最新跳转链接有... 科技介绍!随意玩最新跳转链接有辅助吗!都是存在有辅助攻略(果真有挂)1、玩家可以在随意玩最新跳转链接...
今日!湖北卡五星教程辅助!好像... 今日!湖北卡五星教程辅助!好像是有辅助教程(有挂教程)1、下载好湖北卡五星教程辅助脚本下载之后点击打...
盘点一款!朋朋政和麻将为什么一... 盘点一款!朋朋政和麻将为什么一直输!一贯真的有辅助工具(有挂教学)1、进入游戏-大厅左侧-新手福利-...
今日重大通报!烽火互动辅助!一... 今日重大通报!烽火互动辅助!一直确实有辅助技巧(有挂方略)1)烽火互动辅助辅助插件:进一步探索烽火互...
玩家必备科技!三加一辅助器!真... 玩家必备科技!三加一辅助器!真是真的是有辅助挂(有挂技巧)1、进入到三加一辅助器是否有挂之后,能看到...
专业讨论!雀姬手游辅助!一直存... 专业讨论!雀姬手游辅助!一直存在有辅助攻略(有挂透视)1、雀姬手游辅助脚本辅助下载、雀姬手游辅助免费...
查到实测!情怀西游辅助!本来是... 查到实测!情怀西游辅助!本来是有辅助挂(揭秘有挂)1、查到实测!情怀西游辅助!本来是有辅助挂(揭秘有...