Skip to content

Instantly share code, notes, and snippets.

@alex-ross
Last active December 22, 2015 17:28
Show Gist options
  • Save alex-ross/6505849 to your computer and use it in GitHub Desktop.
Save alex-ross/6505849 to your computer and use it in GitHub Desktop.
angular.module('LoadingIndicator', [])
.config(['$httpProvider', function ($httpProvider) {
var startLoadingIndicator = function() {
angular.element('.loading').text('Loading ...');
};
$httpProvider.responseInterceptors.push('HttpLoadingInterceptor');
$httpProvider.defaults.transformRequest.push(function (data, headersGetter) {
// On request start
startLoadingIndicator();
return data;
});
}])
.factory('HttpLoadingInterceptor', ['$q', '$window', function ($q, $window) {
var stopLoadingIndicator = function() {
angular.element('.loading').text('Done ...');
};
return function (promise) {
return promise.then(function (response) {
// On success
stopLoadingIndicator();
return response;
}, function (response) {
// On error
stopLoadingIndicator();
return $q.reject(response);
});
};
}]);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment