2016-08-11 70 views
1

當我第一次啓動應用程序時,在登錄後,我向服務器發出一個http請求,並在服務器完成時等待幾秒鐘響應。當我在等待時,我可以點擊一些鏈接和步行槽應用程序。我想禁用這個功能,並在所有頁面上加載一些gif,但我不知道該怎麼做。在http請求期間angularjs spinner

我的控制器:

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

如何實現我的代碼顯示在所有頁面加載GIF的東西嗎?

有幫助嗎?

在此先感謝

+0

在服務調用之前,使用'ng-show'設置爲'true'來顯示帶有微調器的'div'。 當你收到數據或想顯示數據時,改變'ng 「顯示」來隱藏它。 對於數據使用相同的變種,但與!不顯示微調數據時顯示數據 –

+0

可能重複[顯示微調角度在$ http請求期間的微調GIF](http://stackoverflow.com/questions/15033195/showing-spinner-gif-during-http-request- in-angular) –

+0

不是重複的,因爲我是角度新手,並且知道只能以一種方式編寫,所以您可以使用另一種編碼方式顯示鏈接,但我並不熟悉。 – Sasa

回答

1

在控制器中,設置和重置一個標誌。

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

在HTML中,使用標誌:

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

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

vm.starting設置true當XHR開始和XHR完成時清除。