Javascript 在routechangestart上加载微调器(使用身份验证库)

Javascript 在routechangestart上加载微调器(使用身份验证库),javascript,angularjs,authentication,hottowel,Javascript,Angularjs,Authentication,Hottowel,我在一个从一位高级开发人员那里继承的项目上使用热毛巾库() 我还为Angular合并了Auth0的身份验证库 我需要将某些路由限制为经过身份验证的用户。为此,我设置了一些路由属性。 isLogin:true用于仅限于未经身份验证的用户的路由。 requiresLogin:true用于需要身份验证的路由,反之则用于不需要身份验证的路由。为了在每个runthrough上检查这些属性,我使用(“$routeChangeStart”函数()) 现在,这似乎干扰了热毛巾附带的旋转器功能。在Shell.js

我在一个从一位高级开发人员那里继承的项目上使用热毛巾库()

我还为Angular合并了Auth0的身份验证库

我需要将某些路由限制为经过身份验证的用户。为此,我设置了一些路由属性。
isLogin:true
用于仅限于未经身份验证的用户的路由。
requiresLogin:true
用于需要身份验证的路由,反之则用于不需要身份验证的路由。为了在每个runthrough上检查这些属性,我使用(“$routeChangeStart”函数())

现在,这似乎干扰了热毛巾附带的旋转器功能。在Shell.js中,我发现以下内容:

$rootScope.$on('$routeChangeStart',
    function (event, next, current) { toggleSpinner(true); }
);

$rootScope.$on(events.controllerActivateSuccess,
    function (data) { toggleSpinner(false); }
);

$rootScope.$on(events.spinnerToggle,
    function (data) { toggleSpinner(data.show); }
);

发生的情况是,微调器从未停止旋转(例如,vm.isBusy=true,因为控制器从未激活并重置),我将如何解决此问题?

我已经很久没有研究您的代码了,但您是否应该使用
$routeChangeSuccess
停止微调器

$scope.isViewLoading = false;
$scope.$on('$routeChangeStart', function() {
    $scope.isViewLoading = true;
});
$scope.$on('$routeChangeSuccess', function() {
    $scope.isViewLoading = false;
}); 

一个想法是,您可以使用事件($broadcast)来通知何时进行了未经授权的访问,以便关闭微调器的控制器接收到该消息

微调器包含在第三方库中,我在最初的问题中对此进行了解释在app.run方法中,但微调器继续滚动。用方法更新了OP的全部内容。不过,谢谢你的回复。那太早了。您需要在正在调用的异步任务完成后执行此操作。如果这是一个auth任务(听起来像),那么在完成后调用该事件以关闭微调器。好的,我明白了!现在,我用$timeout解决了这个问题,并使用了common中的activateController方法,但我并不喜欢我的解决方案。我注意到我正在使用的auth库在登录成功时触发一个事件,因此我可以在登录成功时触发controllerActivateSuccess,我会很高兴。
$scope.isViewLoading = false;
$scope.$on('$routeChangeStart', function() {
    $scope.isViewLoading = true;
});
$scope.$on('$routeChangeSuccess', function() {
    $scope.isViewLoading = false;
});