2013-09-10 3 views
1

В Напрямую, я хочу удалить файлы в пользователя, я сделал этокакой-то вопрос о «angularJS работать с Plupload

$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 файл был удален ... почему? спасибо всем вам!

ответ

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; 

Надеется, что это поможет

+0

спасибо большого !!! –