javascript - 关于“AngularJS 与 Plupload 一起使用”的一些问题

标签 javascript angularjs web plupload

在直接中,我想删除 uploader 中的文件,我这样做了

 $scope.close = function() {
        console.log($scope);
        $scope.isOpen = false;
        $('.file_container').empty();
        **angular.forEach($scope.uploader.files, function(v, k) {
            $scope.uploader.removeFile(v);
            $scope.fileLength = $scope.uploader.files.length;
        });**

    };

    $scope.uploader = new plupload.Uploader({
        runtimes: 'html5,html4',
        browse_button: 'addFile',
        max_file_size: '20000mb',
        chunk_size: '512kb',
        // resize: { width: 125, height: 85, quality: 90 },
        flash_swf_url: '../scripts/lib/plupload.flash.swf',
        filters: [{
                extensions: 'jpg,png'
            }]
    });

    $scope.fileLength = 0;
    $scope.currentUpload = 0;
    $scope.uploader.bind('init', function() {
        console.log('init');
    });
    $scope.uploader.bind('UploadProgress', function(up, files) {
        $('.progress_percent').eq($scope.currentUpload).html(files.percent + '%');
        $('.progress_bar').eq($scope.currentUpload).css('width', files.percent + '%');
    });
    $scope.uploader.bind('FilesAdded', function(up, files) {
        $scope.$apply(function() {
            $scope.fileLength = files.length;
        });
        console.log($('input[type=file]'));
        readURL($('input[type=file]')[0]);
    //    up.start();
    });
    $scope.uploader.bind('BeforeUpload', function(up, file) {
        var mediaName = 'MediaBank' + Math.random().toString().substr(2);
        up.settings.url = '/Upload.ashx?medianame=' + mediaName + '&activityid=2013';
    });
    $scope.uploader.bind('FileUploaded', function(up, file, info) {
        $scope.currentUpload++;
        console.log($scope.currentUpload);
    });
    $scope.uploader.init();
    $('#save').bind('click', function() {
        $scope.uploader.start();
    });

而且,当我添加 2 个文件时,当调用“$scope.close”函数时,只删除了 1 个文件......为什么?谢谢大家!

最佳答案

可能是迭代器的问题以及您在浏览列表时更改列表的事实。

您可以尝试替换:

**angular.forEach($scope.uploader.files, function(v, k) {
            $scope.uploader.removeFile(v);
            $scope.fileLength = $scope.uploader.files.length;
        });**

与:

$scope.uploader.splice(0); // $scope.uploader.splice(); should work too
$scope.fileLength = $scope.uploader.files.length;

希望这会有所帮助

关于javascript - 关于“AngularJS 与 Plupload 一起使用”的一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18712944/

相关文章:

javascript - jQuery,检查是否选择了所有单选按钮组

javascript - 将鼠标光标更改为 Sprite div

angularjs - Google pagedown AngularJS 指令

html - 无法让页脚粘在页面底部

java - sbt 构建失败-找不到模块 : org. scala-sbt#sbt;0.13.5

asp.net - UpdatePanel - 关于如何避免 UI 闪烁的任何想法? - ASP.NET/Jquery

javascript - 如何更改 Angular js 中事件链接的背景颜色

javascript - AngularJS http 发布并重定向到支付网关

php - Laravel 5 和委托(delegate)。如何同时保存用户和附加角色

javascript - 点击时 Fancybox 加载 div?