每次url在AngularJS中更改时调用哪个函数?
我必须对同时发生的所有请求进行排队,而不必等待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
我有一个加载函数,每次更改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,谢谢。。它可以工作,但现在我需要路由或控制器中任何位置的所有挂起请求的列表。。你知道吗?