20

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
        });
   });
4

2 に答える 2

24

次のようなものを使用できます。

.run( function($rootScope, $location) {
   $rootScope.$watch(function() { 
      return $location.path(); 
    },
    function(a){  
      console.log('url has changed: ' + a);
      // show loading div, etc...
    });
});
于 2013-03-16T05:26:12.710 に答える
24

$route$.onサービスには、コントローラーで使用して監視できる一連のイベントがあります。

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

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

$rootScope.$on("$routeChangeError"....

ドキュメント$routeを参照

ng-showjQuery を使用する代わりに要素に設定し、変数をコールバックで true に設定し、$routeChangeStartコールバックで false に設定することができ$routeChangeSuccessます。

これらのイベントの良いデモ: https://github.com/johnlindquist/angular-resolve

于 2013-03-16T11:08:56.070 に答える