我需要上传文件,我使用$ http(这段代码来自我的.service()函数):
sendFile: function (params) { return $http({method : 'post', url : 'http://XXXXXXXXXXXXX/rest/file.json', headers : { 'X-CSRF-Token' : $cookies['csrftoken']}, data : params }) },
现在,对于小文件和良好的线路没有问题,但是对于大文件和/或坏/慢线路存在UI问题:用户无法知道何时上传将结束.我需要一个进度条.
所以我在互联网上搜索,但我还没有找到解决方案.是否有可能从$ http获得一些进展/通知?
我没试过这个代码:
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) } );
永远不会调用"进度"功能.
我正在使用角度1.2.x
谢谢.
您可以使用Angular Loading Bar.它可以自动处理$http
请求,除了将其添加为app依赖项外,不需要任何设置.
angular.module('app', ['angular-loading-bar']); // that's all
我强烈推荐ng-progress.这会处理多个请求,并且基本上为所有http活动显示一个整洁的小进度条.
http://victorbjelkholm.github.io/ngProgress/