umieścić tarczy podczas $ http.get pobiera dane z relaksującego API w kanciastych js

głosy
1

Ja ściągam do danych z tej funkcji w moim kontrolera:

var fetchStoreItems = function () {
    return $http.get('/enterprises/_store').then(function (response) {
        $scope.items = response.data;
    }, function (errResponse) {
        console.error(Error while fetching data)
    })
};

To działa dobrze i wystarczająco szybko. Ale co, jeśli istnieje wiele elementów do pobrania ?! Chcę położyć tarczy podczas gdy dane są naciągane.

Jak mogę to zrobić?

Utwórz 02/12/2014 o 05:14
źródło użytkownik
W innych językach...                            


2 odpowiedzi

głosy
3

W kontrolerze,

var fetchStoreItems = function () {
    $scope.loading = true;            //define a `$scope` variable; show loading image when ajax starts
    return $http.get('/enterprises/_store').then(function (response) {
        $scope.items = response.data;
        $scope.loading = false;       //hide loading image  when ajax successfully completes
    }, function (errResponse) {
        console.error("Error while fetching data");
        $scope.loading = false;      //hide loading image  when ajax error
    })
};

<img src="pathToLoadingImage" ng-show="loading" />  // show the loading image according to `$scope.loading`
Odpowiedział 02/12/2014 o 05:19
źródło użytkownik

głosy
1

Jeśli chcesz użyć go do niektórych z resztą API, odpowiedź kalhano za dobrze. Jednak jeśli chcesz obrotowemu dla wszystkich kątowych połączeń HTTP, można rozważyć użycie przechwytywania.

Proszę sprawdzić ten link, aby: Http docs połączeń z przechwytujących wyjaśnione

Odpowiedział 02/12/2014 o 05:41
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more