DropzoneJS 上传后隐藏了 dropzone 区域,如何恢复?

2024-04-17

我在用着angular2-dropzone-wrapper我几乎按照我的需要工作了。

我有这样的配置:

this.dropZoneConfig = {
    server: this.url,
    maxFilesize: 50,
    acceptedFiles: ".xml",
    parallelUploads: 5,
    uploadMultiple: true,
    createImageThumbnails: false,
    addRemoveLinks: true,
    headers: { "Authorization": "Bearer " + sessionStorage.getItem("AccessToken")}
};

当我选择要上传的文件时,我会看到很好的进度条。 当所有文件上传后,我最终会得到一个大的空块,其中先前包含进度条。我没有看到任何东西,因为我设置了createImageThumbnails: false这是正确的,因为我正在上传 XML 文件并且不需要缩略图。

当所有文件完成后,我希望重置放置区。所有以前上传的文件都将被删除,拖放区又回来了。

我发现了几个使用removeFile(file) 方法的示例。这似乎可以解决问题,但示例是用 JavaScript 编写的,我正在使用 TypeScript,但不知道如何转换它(我是 TypeScript 的新手)。

我确实听QueueComplete:

private onDropZoneQueueComplete(event) {
    console.log("In onDropZoneQueueComplete");
}

在这里我想我需要调用removeFiles方法或在“Success”事件监听器中调用removeFile。

EDIT: 我的HTML:

  <dropzone [config]="dropZoneConfig" [message]="'Click or drag images here to upload'"
          (error)="onDropZoneUploadError($event)"
          (sendingmultiple)="onDropZoneSendingMultiple($event)"
          (queuecomplete)="onDropZoneQueueComplete($event)"></dropzone>

The 降落区文档 http://www.dropzonejs.com/#dropzone-methods说你需要打电话removeFile() or removeAllFiles()于 Dropzone 实例,即myDropzone.removeAllFiles().

但是,浏览 angular2-dropzone-wrapper 的源代码我偶然发现了一个reset() https://github.com/zefoy/ngx-dropzone-wrapper/blob/master/src/lib/dropzone.directive.ts#L146调用的方法this.dropzone.removeAllFiles()为你。附注:打电话时removeAllFiles(),正在上传的文件将不会被删除。

您可以致电reset()方法具有以下语法:

<dropzone #dz (queuecomplete)="dz.reset()"></dropzone>

或者,如果您有更多代码要执行queuecomplete您可以调用自定义方法并将其传递给指令的引用(dz):

<dropzone #dz (queuecomplete)="onDropZoneQueueComplete($event, dz);"></dropzone>

然后在你的班级:

private onDropZoneQueueComplete(event, dz) {
  this.filesListComponent.reload();  // additional code
  dz.reset();
}

Paul 还提到他添加了以下 CSS:

.dz-preview.dz-file-preview.dz-processing.dz-success.dz-comp‌​lete { display: none !important; }

仅供参考,我最初的想法是:让我们获取由 dropzone 指令创建的 Dropzone 实例!不幸的是 angular2-dropzone-wrapper 不允许您访问它创建的 dropzone 实例(this.dropzone是私有财产)。也没有exportAs实例(它可以让你写类似的东西<dropzone #mydz="dzinstance"></dropzone>获取您自己的 dropzone 实例mydz财产)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DropzoneJS 上传后隐藏了 dropzone 区域,如何恢复? 的相关文章

随机推荐