每次url在AngularJS中更改时调用哪个函数?

每次url在AngularJS中更改时调用哪个函数?,angularjs,angularjs-routing,Angularjs,Angularjs Routing,我必须对同时发生的所有请求进行排队,而不必等待angularjs中前一个请求的响应。我有一个加载函数,每次更改url路由时都会显示加载div,但在该函数中进行队列排列是不确定的。有人能告诉我调用了哪个函数吗每次更改url路由时angularjs路由?以下是路由代码: angular.module('myApp', ['myApp.directives', 'myApp.services', 'myApp.filters']).config( function($routeProvider

我必须对同时发生的所有请求进行排队,而不必等待angularjs中前一个请求的响应。
我有一个加载函数,每次更改url路由时都会显示加载div,但在该函数中进行队列排列是不确定的。

有人能告诉我调用了哪个函数吗每次更改url路由时angularjs路由?
以下是路由代码:

angular.module('myApp', ['myApp.directives', 'myApp.services', 'myApp.filters']).config(
    function($routeProvider, $locationProvider, $httpProvider) {
        $locationProvider.html5Mode(false);
        $locationProvider.hashPrefix('!');

        $httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';

        var loading = function (data, headersGetter) {
            $('loadingDiv').show();
            return data;
        };
        $httpProvider.defaults.transformRequest.push(loading);

        $routeProvider.
        when('/', {
            templateUrl: 'elements/home/home.html',
            controller: homeCtrl
        });
   });

您可以使用以下内容:

.run( function($rootScope, $location) {
   $rootScope.$watch(function() { 
      return $location.path(); 
    },
    function(a){  
      console.log('url has changed: ' + a);
      // show loading div, etc...
    });
});

$route
服务有一系列事件,您可以使用
$进行监控。在控制器中的
上:

$rootScope.$on("$routeChangeStart", function(args){})

$rootScope.$on("$routeChangeSuccess"....

$rootScope.$on("$routeChangeError"....
见文件

您可以在元素上设置
ng show
,而不是使用jQuery,并在
$routeChangeStart
回调中将变量设置为true,在
$routeChangeSuccess
回调中将变量设置为false


这些事件的一个很好的演示:

但是$scope没有在routes中定义。您是对的,我在Module.run()初始化函数中编辑了答案$rootScope,谢谢。。它可以工作,但现在我需要路由或控制器中任何位置的所有挂起请求的列表。。你知道吗?