4

angularモジュールがサーバーに接続しているときに表示する読み込みdivを取得しようとしています。私は AngularJS 1.0.1 と AngularJS Resources 1.0.1 を使用して HTML の機能を拡張し、jquery 1.7.2 をいくつかの追加の dom 操作と ajax サポートのために使用しています。

ajax 呼び出しを async false で実行すると、ロード中の div が表示されないことが既にわかりました。ただし、Firefox では表示されますが、アニメーション gif はアニメーション化されません。

ajax 呼び出しを async true で実行すると、返されたデータが読み込まれたテンプレート パーシャルの角度モデル変数に読み込まれません。

アニメーション化されたロード div を表示して、モデルにロードする角度データを取得することはまったく可能ですか?

4

1 に答える 1

12

うまくいけば、私はあなたを正しく理解しています。ajax リクエストの読み込みの進行状況を表示したいとします。これを行うには、応答インターセプターが必要です。これを行う方法の例を次に示しますhttp://jsfiddle.net/zdam/dBR2r/

// register the interceptor as a service, intercepts ALL angular ajax http calls
.factory('myHttpInterceptor', function ($q, $window, $rootScope) {
    return function (promise) {
        $rootScope.nowloading = true; // use ng-show="nowloading" on element containing spinner
        return promise.then(function (response) {
            // do something on success
            $rootScope.nowloading = false; // need to turn it off on success 
            return response;

        }, function (response) {
            // do something on error
            $rootScope.nowloading = false;  // need to turn it off on failure
            $rootScope.network_error = true;   // you might want to show an error icon.
            return $q.reject(response);
        });
    };

お役に立てれば

――段

于 2012-07-26T21:00:50.070 に答える