我有一个图片库,我打算将这些图片拖放到拖放区。
我尝试在两种情况下使用它(使用鼠标拖动图像并使用允许我将图像移动到放置区域的 cdk 拖放)。
有没有办法从放置在放置区的图像中获取对象(名称、id ...)?我尝试将图像拖到放置区,当我在那里释放它时,我想知道哪个图像被放置了。
有没有办法做到这一点?有人能帮我吗?
非常感谢!
.TS
onFileDropped($event) {
this.prepareFilesList($event);
console.log("evt", $event )
}
fileBrowseHandler(files) {
this.prepareFilesList(files);
}
async prepareFilesList(files: Array<any>) {
}
@HostBinding('class.fileover') fileOver: boolean;
@HostBinding('style.background-color') private background = '#f5fcff'
@Output() fileDropped = new EventEmitter<any>();
// Dragover listener
@HostListener('dragover', ['$event']) onDragOver(evt) {
evt.preventDefault();
evt.stopPropagation();
this.fileOver = true;
this.background = '#9ecbec';
}
// Dragleave listener
@HostListener('dragleave', ['$event']) public onDragLeave(evt) {
evt.preventDefault();
evt.stopPropagation();
this.background = '#f5fcff'
this.fileOver = false;
}
// Drop listener
@HostListener('drop', ['$event']) public ondrop(evt) {
evt.preventDefault();
evt.stopPropagation();
this.background = '#f5fcff'
this.fileOver = false;
let files = evt.dataTransfer.files;
this.fileDropped.emit(files);
}
使用图像 (cdkDrag) 我无法在放置区中获得任何检测到某物进入的事件。
使用普通图像,我能够执行该功能
onFileDropped ($ event) {
this.prepareFilesList ($ event);
console.log ("evt", $ event)
}
但我没有得到如图所示的结果。