【发布时间】:2018-03-06 22:10:27
【问题描述】:
我正在使用两个 Angular(2+) 工具:ng2-file-upload 和 angular2-img-cropper。
我正在尝试使用 ng2-file-upload 的 Dropzone 在 angular2-img-cropper 的裁剪工具中加载图像。 如果我更改输入文件(HTMLElement),我实际上可以在裁剪工具中加载选定的图像,但它会因拖放区域而失败。
以下是我如何使用输入来做到这一点:
HTML:
<input type="file" id="file-name"
ng2FileSelect
[uploader]="uploader"
(change)="fileChangeListener($event, cropper)"/>
TS:
fileChangeListener($event : any, cropperComp: ImageCropperComponent) {
this.cropper = cropperComp;
let image = new Image();
var file:File = $event.target.files[0];
var myReader:FileReader = new FileReader();
var that = this;
myReader.onloadend = function (loadEvent: any) {
image.src = loadEvent.target.result;
that.cropper.setImage(image);
};
myReader.readAsDataURL(file);
}
正如我所说,这很好用。
但是,当我尝试使用 Dropzone 时出现此错误:
ERROR TypeError: Cannot read property 'files' of undefined [...] at ProfileComponent.fileChangeListener
HTML(拖放区):
<div ng2FileDrop
[ngClass]="{'nv-file-over': hasBaseDropZoneOver}"
(fileOver)="fileOverBase($event)"
[uploader]="uploader"
class="well my-drop-zone"
(onFileDrop)="fileChangeListener($event, cropper)"
>
Base drop zone
</div>
【问题讨论】:
标签: javascript angular typescript drag-and-drop