Я реализую функцию spinner в моем проекте. Золото должно показать счетчик, когда один или несколько запросов HTTP уволены, и спрячьте счетчик, когда запросы будут успешными. Поскольку я не знаю, какой запрос будет разрешен первым, я решил использовать $ q.all. У меня есть директива, как это:
angular.module('myApp', [])
.directive('spinner', function($q, $http) {
return {
controller: function($scope) {
$scope.showSpinner = true;
var self = this;
self.promises = [];
self.makeHeader = function() {
self.promises.push($http.get('some/url'));
// Code that builds header goes here.
};
self.makeFooter = function() {
self.promises.push($http.get('other/url'));
// Code that builds footer goes here.
};
self.makeHeader();
self.makeFooter();
// Initial page load
$q.all(self.promises).then(function() {
// Hide the spinner.
$scope.showSpinner = false;
});
}
}
});
Начальная нагрузка работает отлично, но когда пользователь имеет взаимодействие, которое требует несколько вызовов на сервер, чтобы восстановить верхние и нижние колонтитулы. Как я снова покажу счетчик и спрячу его, когда обещания будут решены?
спасибо. Это намного чище. – user2914136