学习笔记之初始化前端项目2---路由拦截 angular和vue的路由拦截

3 篇文章 0 订阅
2 篇文章 0 订阅

vue

const whiteList = ['/','/register']; // 不重定向白名单
router.beforeEach((to, from, next) => {
  /* 路由发生变化修改页面title */
  if (to.meta.title) {
    document.title = to.meta.title
  }
  let isLogin=Cookies.get('account')//获取cookie中的登陆信息(也可其他判断方式)
  if(isLogin){
    next();   如果登陆了,执行路由跳转//
  }else{
    if (whiteList.indexOf(to.path) !== -1) {  //判断是否是白名单(一般放些登陆页面,注册页面等)
      next();
    }else{
      Message.info('登陆信息失效,请重新登陆');
      next({
        path: '/', // 没有cookie登陆信息路由跳转到登陆页
        // query:{} // 登陆成功后回到当前页面,这里传值给login页面,to.fullPath为当前点击的页面
      });
    }


  }
})

angular

当监听到路由发生改变时,可进行路由拦截,在这里可以验证角色权限判断跳转路由

angular.module('com.cmp.app').run(function($rootScope) {
  $rootScope.$on('$stateChangeStart',function(event){
    if(toState.name=='login')return;// 如果是进入登录界面则允许
    // 如果用户不存在
    if(ifLoginTrue==false){
      console.log("没有登录")
      event.preventDefault();// 取消默认跳转行为
      // $state.go("login",{from:fromState.name,w:'notLogin'});//跳转到登录界面
    }
  });
});
    // 监听路由开始时触发
      $rootScope.$on('$stateChangeStart', function () {}

    // 监听路由成功时触发
      $rootScope.$on('$stateChangeSuccess', function () {}

    // 监听路由出现错误时触发
      $rootScope.$on('$stateChangeStart', function () {}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值