为了账号安全,请及时绑定邮箱和手机立即绑定

跳转外部链接,angular ui-router disable问题

跳转外部链接,angular ui-router disable问题

BIG阳 2019-03-14 11:10:07
公司现在有一个业务场景:当输入itil网址时,先判断是否登录了,没有登录,则需要跳转到一个外部链接登录入口进行登录。现在问题,出来了!1 当跳转到外部登录链接(新开了一个tab页)。2 此时,ui-router,会将跳转的外部链接,解析为一个错误路由3 当跳转错误路由,会自动重定向到home页4.而重定向home页,因为还未登录,所以又会跳转到外部登录链接会重复刚才的判断过程,是否登录,没有登录,跳转到外部链接。。。,周而复始,死循环。 $rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams) {        //正常路由跳转  判断        if(toState.name == 'login') {            return;        }        if(toState.name != 'login') {            var currentUrl = window.location.href;            var currentState=toState.name;                        //正常情况下,每一次跳转路由,都要判断用户信息是否有效            try{                //1.判断用户信息是否存在 及 有效                var userInfo=JSON.parse($cookies.get("userInfo"));                $rootScope.loginCode=userInfo.Code;            }catch(err){                console.log(err);                event.preventDefault();                      window.open="http://helloworld:6688/hello/control/main?url=http://localhost:8889/#!/app/home";//跳转到外部登录链接            }        }    });网上查的各种资料,都看了下,都无法解决 在跳转了外部链接后,ui-router不要动作(不要将外部链接解析为错误路由,进而跳转到home页,进而引发死循环)。通过在JS在页面append进a标签元素,然后触发click事件(强制模拟用户行为,跳转到外部链接),一样无法解决标红 问题。希望熟悉ui-router原理的大神 或者 之前 有踩过坑的同学,能帮忙分析下,谢谢!
查看完整描述

1 回答

?
哔哔one

TA贡献1854条经验 获得超8个赞

问题解决了!将catch 语句中的event.preventDefault(); 删除掉,可以解决。具体原理,还是看ui-router源码!后期会更新相关文档!


查看完整回答
反对 回复 2019-04-03
  • 1 回答
  • 0 关注
  • 632 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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