请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

请问在angular中如何一键给所有路由加全局守卫呢

{
    path: 'resource-edit',
    component: UploadComponent,
    data: {
      title: '编辑资源',
    },
    canActivate: [LoginGuard]
  },

因为每个路由我都需要加同样的守卫,如果在每个路由中都加canActivate太麻烦了,请问老师该如何写呢?求解答

router.beforeEach(async(to, from, next) => {})

像Vue这样就很方便

我暂时是用的暴力循环,不知道有没有更优雅的写法

const addGuards = (routes: Routes, name: string) => {
  routes.forEach((router: Route) => {
    if (!router.children) {
      router[name] = [LoginGuard]
    } else {
      addGuards(router.children, name)
    }
  })
}

addGuards(routes, 'canActivate')

正在回答 回答被采纳积分+3

1回答

接灰的电子产品 2020-10-25 22:39:46

在 ng 中,推荐的方式是在父路由上加上 CanActivateChild 这个守卫,这个路由之下的所有子路由都会被守护。

0 回复 有任何疑惑可以回复我~

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号