使用vant-uploader上傳照片無法刪除的解決
vant-uploader上傳照片無法刪除
在微信小程序使用vant-uploader上傳圖片時,發(fā)現(xiàn)點擊右上角的小叉叉無法刪除圖片,查看了源碼:
(源碼位置:miniprogram\miniprogram_npm@vant\weapp\uploader\index.js)
deleteItem: function (event) {
var index = event.currentTarget.dataset.index;
this.$emit(
'delete',
__assign(__assign({}, this.getDetail(index)), {
file: this.data.fileList[index],
})
);
},
發(fā)現(xiàn)里面點擊刪除只是向父組件傳遞了一個名為’delete’的事件,該事件包含點擊的圖片的下標(biāo)。為了達到刪除的目的,我們還需自己定義對應(yīng)的刪除函數(shù)。
解決方法
在XML里獲取delete事件,其中’deleteImg’為自定義的刪除照片的操作:
<van-uploader catch:delete="deleteImg" preview->
</van-uploader>在JS里,寫自己需要進行的操作:
deleteImg(event){
let index= event.detail.index
console.log(index)//輸出的就是圖片所在fileList的下標(biāo),自己根據(jù)需要進行操作就行
},一些關(guān)于vant-uploader的前端問題
首先要引入vant和vue,參考官方地址。vant-uploader的定義,實現(xiàn)和引入詳見官方地址,這里不再一一列舉。
本文寫一些前端開發(fā)方面遇到的問題。
1.afterRead和beforeRead有時不能同時執(zhí)行的問題。
解決方案:beforeRead要執(zhí)行返回True之后才可以執(zhí)行afterRead 。
<van-uploader :before-read="beforeRead" :after-read="afterRead" />
export default {
? methods: {
? ? beforeRead(file) {
? ? ? if (file.type !== 'image/jpeg') {
? ? ? ? Toast('請上傳 jpg 格式圖片');
? ? ? ? return false;
? ? ? ? ?? ??? ??? ?}
? ? ? return true;
? ? ? ?? ??? ?},
? ?afterRead(file) {
? ? ? // 此時可以自行將文件上傳至服務(wù)器
? ? ? console.log(file);
? ? ? ?? ??? ?},
? ? ? ?? ?},
};van-uploader允許上傳的文件類型默認(rèn)為image/*,一般直接寫afterRead就可以了。
2.實現(xiàn)實時向服務(wù)器提交,刪除文件。
項目需求是上傳和刪除與服務(wù)器同步,刪除圖片的同時需要從服務(wù)器端也刪除圖片。
由于vant-uploader本質(zhì)也是image+input實現(xiàn)的。
原有的方法是給input直接綁定id,用ajaxFileUploader方法實時更新后臺的圖片文件,缺點是一次性只能選擇一張圖片。
于是我們可以動態(tài)給vant-uploader控件里的input框動態(tài)添加id,以此實現(xiàn)delete時候后端也可以即時刪除圖片的操作。
function delImg(index){
let ind = vue.$data.imgContList.indexOF(index);
vue.$data.imgContList.splice(ind,1);
console.log(vue.$data.imgContList);
let delUploader =document/getElementByClassName("van-uploader__preview-delete");
for(let i=0;i<vue.$data.imgContList.length;i++){
$(delUploader[i]).removeAttr("id").attr("id","removeClose_4_"+(vue.$data.imgCountList[i]));
$(delUploader[i]).removeAttr("onclick").attr("onclick","delImg("+(vue.$data.imgCountList[i])+")");
}
}3.一些樣式的修改具體參考官網(wǎng)api或者直接修改vant.css里關(guān)于uploader的css樣式即可。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
對Vue2 自定義全局指令Vue.directive和指令的生命周期介紹
今天小編就為大家分享一篇對Vue2 自定義全局指令Vue.directive和指令的生命周期介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08
VUE頁面中通過雙擊實現(xiàn)復(fù)制表格中內(nèi)容的示例代碼
這篇文章主要介紹了VUE頁面中通過雙擊實現(xiàn)復(fù)制表格中內(nèi)容,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06
Vue網(wǎng)頁html轉(zhuǎn)換PDF(最低兼容ie10)的思路詳解
這篇文章主要介紹了Vue網(wǎng)頁html轉(zhuǎn)換PDF(最低兼容ie10)的思路詳解,實現(xiàn)此功能需要引入兩個插件,需要的朋友可以參考下2017-08-08
一文詳解Vue3組件通信輕松玩轉(zhuǎn)復(fù)雜數(shù)據(jù)流
在大型Vue項目中,組件通信如同神經(jīng)網(wǎng)絡(luò)般貫穿整個應(yīng)用,這篇文章將為大家詳細介紹一下Vue3中的組件通信方式,有需要的小伙伴可以了解下2025-02-02
Vue導(dǎo)出json數(shù)據(jù)到Excel電子表格的示例
本篇主要介紹了Vue導(dǎo)出json數(shù)據(jù)到Excel電子表格的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12

