element-ui 中 如何在el-upload的移除文件列表事件 on-remove 中先异步请求,如果失败则不移除

1、问题描述:今天想弄一个文件上传功能,在上传失败的时候,在文件列表中不移除文件,可是每次点击删除之后都把文件列表清除掉了去网上搜索下相关问题解决方案,结果搜到下面这个

element-ui 中 如何在el-upload的移除文件列表事件 on-remove 中先异步请求,如果失败则不移除_第1张图片

原文链接:element-ui 中 如何在el-upload的移除文件列表事件 on-remove 中先异步请求,如果失败则不移除 - OSCHINA - 中文开源技术交流社区

可以看到阅读17k,竟然下面都没有一个人回答,没办法只能自己去寻求解决方法了。
2、解决问题

2.1定义一个文件列表 fileList,然后绑定在组件 el-upload上,如下截图

element-ui 中 如何在el-upload的移除文件列表事件 on-remove 中先异步请求,如果失败则不移除_第2张图片

2.2 两个关键方法on-remove、before-remove

两个方法Element官方描述如截图

element-ui 中 如何在el-upload的移除文件列表事件 on-remove 中先异步请求,如果失败则不移除_第3张图片

,通过官方描述可以知道,在我们调用在删除之前会调用before-remove方法,所以我这里绑定了

beforeRemove方法,方法截图如下:

element-ui 中 如何在el-upload的移除文件列表事件 on-remove 中先异步请求,如果失败则不移除_第4张图片

注意:这里在点击确定按钮的时候,其实fileList中已经将file文件从文件列表中删除

在before-remove点击确定之后,会调用on-remove方法,这个方法就是我们异步去删除文件的过程,这里的逻辑就是如果后端异步删除文件失败则不清除文件列表,如果后端异步删除文件成功则删除文件列表,在这里,我在on-remove中绑定方法handleRemove,handleRemove方法截图如下:

element-ui 中 如何在el-upload的移除文件列表事件 on-remove 中先异步请求,如果失败则不移除_第5张图片

你可能感兴趣的:(javascript,前端框架,前端,vue.js,elementui)