2016-08-11 16 views
1

初めてログインすると、サーバーに1回のHTTPリクエストを行い、サーバーが処理を完了してから応答を待っています。私が待っている間、私はいくつかのリンクをクリックし、トラフアプリを歩くことができます。私はこれを無効にして、すべてのページにいくつかの読み込みGIFを作成するが、私はそれを行う方法がわからない。httpリクエスト中のangularjsスピナー

マイコントローラー:全てのページ間での負荷GIFを表示するために私のコードで何かを実装する方法

vm.starting = starting;  
function starting() { 
      dataService.restartVersion().then(function (data) { 

      }); 
     } 

マイサービス

function restartVersion() { 
     return $http.post('http://localhost/organization/restartVer', { 
     }).then(function(response) { 
      return response.data; 
     }); 
    } 

助けてください?

ありがとうございます。

+0

サービスを呼び出す前に 'ng-show'を' true'に設定すると、スピナーで 'div'が表示されます。 データを受け取ったり表示したりするときは、' ngそれを隠すために - ショー。 データには同じvarを使用しますが、!スピナーを表示しないようにするには –

+0

[$ httpリクエスト中にSpinner GIFを表示する]の可能な複製(http://stackoverflow.com/questions/15033195/showing-spinner-gif-during-http-request-私は角度が新しく、片方だけ書くことを知っているので、あなたは私が慣れていないコーディングの別のアプローチとのリンクを示しているので、 –

+0

は重複していません。 – Sasa

答えて

1

コントローラでは、フラグを設定してリセットします。 HTMLで

function starting() { 
    vm.starting = true; 
    dataService.restartVersion() 
     .then(function onSuccess(data) { 
     vm.data = data; 
    }).catch(function onReject(errorResponse) { 
     console.log(errorResponse.status); 
    }).finally(function() { 
     vm.starting = false; 
    }); 
}; 

、フラグを使用します。

<div ng-show="vm.starting"> 
    <img ng-src="spinnerURL" /> 
</div> 

<div ng-hide="vm.starting"> 
    <p>{{vm.data}}</p> 
</div> 

vm.startingtrueときXHRが開始さを設定し、XHRが完了したときにクリアされます。

関連する問題