热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

跳转外部链接,angularuirouterdisable问题

公司现在有一个业务场景:当输入itil网址时,先判断是否登录了,没有登录,则需要跳转到一个外部链接登录入口进行登录。

公司现在有一个业务场景:当输入itil网址时,先判断是否登录了,没有登录,则需要跳转到一个外部链接登录入口进行登录。



现在问题,出来了!

1 当跳转到外部登录链接(新开了一个tab页)。
2 此时,ui-router,会将跳转的外部链接,解析为一个错误路由
3 当跳转错误路由,会自动重定向到home页
4.而重定向home页,因为还未登录,所以又会跳转到外部登录链接



会重复刚才的判断过程,是否登录,没有登录,跳转到外部链接。。。,周而复始,死循环。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 $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";//跳转到外部登录链接



            }

        }

    });

网上查的各种资料,都看了下,都无法解决

1
在跳转了外部链接后,ui-router不要动作(不要将外部链接解析为错误路由,进而跳转到home页,进而引发死循环)

通过在JS在页面append进a标签元素,然后触发click事件(强制模拟用户行为,跳转到外部链接),一样无法解决标红 问题。

希望熟悉ui-router原理的大神 或者 之前 有踩过坑的同学,能帮忙分析下,谢谢!


   



推荐阅读
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有