【发布时间】:2019-08-13 14:42:58
【问题描述】:
我正在开发一个类似于 Trello 的 Angular 应用程序,我需要实现拖放功能,以便客户能够上传附件。
问题是已经有一个从另一个组件使用的“附加”功能(没有拖放),我需要以与其他功能相同的方式实现拖放。(我需要采用这种“添加附件”功能进行拖放)
以下是图片说明: https://ibb.co/d5WcJfQ
我尝试观看 youtube 视频和 google-ing,但我很难按照要求正确实施它。任何建议将不胜感激。
// HTML OF ATTACH COMPONENT
<span>
<a class="quiet-button js-attach">
<label class="custom-file-upload">
<input (change)="onFileChange($event)" type="file"/>
Add Attachment...
</label>
</a>
//TS FUNCTION 'onFileChange" That I need to adopt for drag-and-drop.`
onFileChange(event){
let files = event.target.files;
if (files.length > 0) {
let formData: FormData = new FormData();
for (let file of files) {
formData.append('fileName', file, file.name);
}
let file = files[0];
let attachmentData = <AttachmentInsert>{
FileName : file.name,
Path : ${this.cardHierarchy.BoardGuid}/${this.cardHierarchy.ListGuid}/${this.cardHierarchy.CardGuid}/`,
Extension : this.getExtension(file.name),
CreatedBy : this.currentUser.IdMember,
IdCard : this.idCard
};
this.cardService.addAttachment(attachmentData).subscribe(data =>{
let attachment : Attachment = data;
formData.append('filePath',attachment.Path);
this.cardService.uploadDocument(formData).subscribe(res => {
this.getAttachments();
});
});
}
【问题讨论】:
-
我的回答有帮助吗?这有点复杂,但问题也很复杂......
-
@miselking 谢谢。是的,您的回答帮助我完成了这项任务,非常感谢!
标签: angular drag-and-drop