当前位置:  开发笔记 > 编程语言 > 正文

Angularjs $ http和进度条

如何解决《Angularjs$http和进度条》经验,为你挑选了2个好方法。

我需要上传文件,我使用$ 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

谢谢.



1> Muhammad Red..:

您可以使用Angular Loading Bar.它可以自动处理$http请求,除了将其添加为app依赖项外,不需要任何设置.

angular.module('app', ['angular-loading-bar']); // that's all


这实际上并没有跟踪文件上传,有趣的是很多人都投了!!!! 第255行的代码描述了它/***将加载条增加一个随机数量*但随着它的进展而减慢*/

2> mithun_daa..:

我强烈推荐ng-progress.这会处理多个请求,并且基本上为所有http活动显示一个整洁的小进度条.

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

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有