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
サービスには、コントローラーで$.on
を使用して監視できる一連のイベントがあります。
$rootScope.$on("$routeChangeStart", function(args){})
$rootScope.$on("$routeChangeSuccess"....
$rootScope.$on("$routeChangeError"....
ドキュメントを参照$ route
JQueryを使用する代わりに、要素にng-show
を設定し、$routeChangeStart
コールバックで変数をtrueに設定し、$routeChangeSuccess
コールバックでfalseに設定できます。
これらのイベントの良いデモ: https://github.com/johnlindquist/angular-resolve