使用upload組件,設(shè)置了mutiple模式,設(shè)置on-success , on-progress 并監(jiān)聽其回調(diào)
1,點(diǎn)擊上傳文件按鈕
2,選擇多個(gè)文件并上傳
3,檢測(cè)文件上傳及成功時(shí)的回調(diào)
文件可以正常上傳到服務(wù)器上,服務(wù)端上傳接口也正確返回了200 ok,但是前端組件只接收到了一次on-success回調(diào)并正確處理,其他任務(wù)雖然成功,在回調(diào)的fileList中可以看到,percentage=100,但是showProgress始終為true,file.response也不存在。按說應(yīng)該每個(gè)文件上傳成功之后都應(yīng)該觸發(fā)回調(diào)
iview官方的issue如下:https://github.com/iview/ivie...
<Upload
ref="upload"
:show-upload-list="false"
:on-success="handleSuccess"
:default-file-list="productImgList"
:format="['jpg','jpeg']"
:max-size="1024"
:on-format-error="handleFormatError"
:on-exceeded-size="handleMaxSize"
:before-upload="handleBeforeUpload"
multiple
type="drag"
:action="uploadUrl"
class="upload-comp"
v-show="productImgList.length < 6">
<div class="upload-icon">
</div>
</Upload>
handleSuccess (res, file, fileList) {
let self = this;
this.fileList = []
if (Array.isArray(fileList)) {
fileList.forEach((item) => {
this.fileList.push(item)
})
}
this.fileList = fileList
self.$nextTick(function(){
self.$validator.validate('upload'+ self.index);
});
},
然后:
watch: {
fileList(newArr, oldArr) {
console.log(JSON.stringify(oldArr))
if (Array.isArray(newArr)) {
for (let i = 0, len = newArr.length; i < len; i++) {
if (newArr[i].status === "finished"){
// console.log(newArr[i])
if (newArr[i].response && newArr[i].response.code === "success") {
this.productImgList.splice(i, 1, Object.assign({}, newArr[i], {
name: newArr[i].response.data,
url: global.IMG_URL + newArr[i].response.data,
fileName: newArr[i].response.data
}))
}
}
}
}
// console.log(JSON.stringify( this.productImgList))
}
}
但是只監(jiān)聽到一次上傳成功事件,請(qǐng)問怎么解決?
https://jsfiddle.net/hfhan/dg...
剛才試了下官網(wǎng)的例子,一次上傳2個(gè)文件運(yùn)行了2次回調(diào)函數(shù),所以是不是你的版本問題,還是想問watch中的fileList只監(jiān)聽到一次??
另外
this.fileList = []
if (Array.isArray(fileList)) {
fileList.forEach((item) => {
this.fileList.push(item)
})
}
this.fileList = fileList
你這一堆寫的沒意義
this.fileList = fileList
直接這樣寫就可以了
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問,美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。