Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Angularjs $http and progress bar

I need to upload file and I use $http (this code is get from my .service() function):

sendFile: function (params) {             return $http({method : 'post',                 url : 'http://XXXXXXXXXXXXX/rest/file.json',                 headers : { 'X-CSRF-Token' : $cookies['csrftoken']},                 data : params             })         }, 

Now, for little file and a good line there is no problem, but with a big file and/or a bad/slow line there is a problem of UI: user can not know when upload will be end. I need a progress bar.

So I have search on internet, but I have not found a solution. Is there a possibility to get some progress/notification from $http ?

I have tried this code without luck:

ProfileService.sendFile(data)                     .then(function(ret) {                             var uri = ret.data.uri;                             scope.content = "Upload finished";                              scope.postForm.fid = ret.data.fid;                             scope.postForm.buttonDisabled = false;                         },                         function(error) {                             scope.postForm.showError = true;                             scope.postForm.errorMsg = error.data;                         },                         function(progress) {                             console.log("inside progress");                             console.log(progress)                         }                     ); 

“progress” function is never called.

I'm using angular 1.2.x

Thanks.

like image 767
ZioBudda Avatar asked Apr 21 '14 21:04

ZioBudda


2 Answers

You can use Angular Loading Bar. It works automatically for $http requests and does not need any setup except adding it as app dependency.

angular.module('app', ['angular-loading-bar']); // that's all 
like image 193
Muhammad Reda Avatar answered Oct 09 '22 02:10

Muhammad Reda


I would highly recommend ng-progress. This handles multiple requests and basically shows a neat little progress bar for all http activity.

http://victorbjelkholm.github.io/ngProgress/

like image 24
mithun_daa Avatar answered Oct 09 '22 01:10

mithun_daa