поместите счетчик, пока $http.get извлекает данные из RESTful API в angularjs

Я получаю данные с помощью этой функции в моем контроллере:

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

Работает нормально и достаточно быстро. Но что, если есть много предметов, которые нужно принести?! Я хочу поставить счетчик, пока данные извлекаются.

Как я могу это сделать?


person Rodrigue    schedule 02.12.2014    source источник


Ответы (2)


В вашем контроллере

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`
person Kalhan.Toress    schedule 02.12.2014

Если вы хотите использовать его для некоторых остальных вызовов API, ответ kalhano работает хорошо. Однако, если вам нужен счетчик для всех ваших HTTP-вызовов angular, вы можете рассмотреть возможность использования перехватчика.

Для этого перейдите по этой ссылке: Документы по вызову HTTP с объяснением перехватчиков

person Kop4lyf    schedule 02.12.2014