отображение индикатора выполнения во время извлечения данных из базы данных

У меня есть кнопка на этой кнопке, я вызываю функцию, например

<button ng-Click=”getData()”></button>
<div class=”Progressbar” ng-show=” showProgress “></div>

контроллер:

$scope.showProgress = false;
$scope.getData = function () {
    $scope.showProgress = !$scope.showProgress;
    myRepository.getAllData();
}

Эта функция занимает больше времени для получения данных из базы данных.
Я хочу показать SPINNER, пока данные извлекаются.

Но этот «Div» отображается только после завершения всей функции. Я хочу, чтобы это было показано до завершения функции. Как я могу этого добиться?


person user4130978    schedule 06.01.2015    source источник
comment
‹button ng-Click="getData()"›‹/button› $scope.showProgress=false; $scope.getData= функция (){ $scope.showProgress= ! $scope.showProgress; мойРепозиторий.getAllData(); } ‹div class="Progressbar" ng-show="showProgress"›‹/div›   -  person user4130978    schedule 07.01.2015
comment
Что такое myRepository.getAllData?   -  person dfsq    schedule 07.01.2015


Ответы (1)


Установите showProgress = true перед загрузкой данных и false после загрузки данных. Для надежного поведения сделайте myRepository.getAllData return promise, а затем используйте его метод then, чтобы скрыть счетчик:

$scope.getData = function() {
    $scope.showProgress = true;
    myRepository.getAllData().then(function() {
        $scope.showProgress = false;
    });
}
person dfsq    schedule 06.01.2015