Асинхронная загрузка на angularjs

Рейтинг: 0Ответов: 2Опубликовано: 18.12.2014

Добрый день.
Делаю ajax на angularjs, но он получается синхронный, и подвисает сайт.
Пример:

$http.get('api/getstudents').
    success(function(data, status, headers, config) {
      $scope.Students= data;
    });

Как сделать его асинхронным и выводить сначала элемент <div>Загрузка...</div>, а по окончании скрыть?

Ответы

▲ 2Принят

Ну так в чем то проблема? Метод get - он асинхронный, то есть уже решает задачу.

темплейт

<div> {{ data }} </div>

код

$scope.data = "Загрузка";
$http.get('api/getstudents').
success(function(data, status, headers, config) {
  $scope.data = data;
});
▲ 3

Запрос асинхронный, и сайт целиком подвисать не должен. Ну а для того чтобы показать надпись "загрузка...", пока не загрузились данные, можете воспользоваться директивами ng-show или ng-hide.

<div ng-hide="Students">Загрузка...</div>
<div ng-repeat="student in Students">{{student.name}}</div>

Как-то так.