Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript UI路由器:使用Others函数侦听locationChangeSuccess会导致无限摘要_Javascript_Angularjs_Angular Ui Router - Fatal编程技术网

Javascript UI路由器:使用Others函数侦听locationChangeSuccess会导致无限摘要

Javascript UI路由器:使用Others函数侦听locationChangeSuccess会导致无限摘要,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我有一个angular应用程序,它使用手动引导,因此我们可以在应用程序启动之前加载依赖项。此应用程序也使用UI路由器 似乎当我们在InternetExplorer上用代码最小化引导应用程序时,应用程序引导时会出现一个无限摘要循环。无限摘要循环发生在UI路由器中的某个地方,我将其缩小到以下代码片段之一 $urlRouterProvider.otherwise(function ($injector, $location) { var $state = $injector.get("$sta

我有一个angular应用程序,它使用手动引导,因此我们可以在应用程序启动之前加载依赖项。此应用程序也使用UI路由器

似乎当我们在InternetExplorer上用代码最小化引导应用程序时,应用程序引导时会出现一个无限摘要循环。无限摘要循环发生在UI路由器中的某个地方,我将其缩小到以下代码片段之一

$urlRouterProvider.otherwise(function ($injector, $location) {
    var $state = $injector.get("$state");
    $state.go("defaultState");
});
在另一节中:

$rootScope.$on('$locationChangeSuccess', function (e) {
    e.preventDefault();
    if (hiSessionStorage.get('retry')) {
        $location.url("/" + hiSessionStorage.get('retry'));
        hiSessionStorage.remove('retry');
    }
    $urlRouter.sync();
});
在上面的代码中,$locationChangeSuccess函数不断受到攻击,我确信它与无限摘要相连接

我知道这是一个相当普遍的问题,一些人已经能够通过各种方式解决它。我尝试了这里列出的最常见的方法:

但是上面的代码使用了这种技术,它不起作用

我也在这里尝试过这种技术:

使用实际的否则状态而不是重定向,但运气不佳

此外,我试图把e;和$urlRouter.sync;在$LocationChangeSuccession侦听器中的if语句中,但这搞砸了许多其他事情,因此我无法做到这一点


我有一个解决这个问题的方法,如果在我能回答之前没有人回答过这个问题,我想把它作为一个答案,因为在找到解决方法之前,我花了两天时间来解决这个问题,我希望其他人不要和我经历的痛苦一样

我只希望这个设置有问题。我非常确信,如果没有$locationChangeSuccess,同样的事情也可以完成。hiSessionStorage会发生什么情况?你为什么要这样做?这是一个身份验证设置。如果身份验证令牌超时,您需要重新身份验证,请在sessionStorage中使用重试令牌。使其成为全局“解析”依赖项是否有问题?不特别是,我知道我们的应用程序结构中有一些东西需要更改,但我们现在没有时间这样做。所以在缺乏这些的情况下,我想理解为什么会发生这种情况。特别是因为它只发生在小型代码中。你没有启用严格的DI,是吗?否则,缩小不应该影响任何东西,除非缩小设置过于激进。