javascript - vue上傳圖片,并顯示在頁(yè)面中的插件
問(wèn)題描述
html代碼<p class='bg_white'>
<p class='content_mission'><span>我的任務(wù)<span style='padding: 0;'> ( 1 )</span></span><span></span><span @click='myMission'></span> </p> <p class='mission_list'><ul> <li><span class='mission_img'> <span class='mui-icon mui-icon-plusempty file'><p class='vue-upload-img-multiple'> <p v-if='images.length >0'> <ul><li v-for='image in images'> <img :src='http://m.cgvv.com.cn/wenda/image' /> <a href='javascript:void(0);' ><span @click=’delImage($index)’></span> </a></li> </ul> </p> <p> <p v-if='!image'> <input type='file' @change='onFileChange'> </p> <p v-else> <img :src='http://m.cgvv.com.cn/wenda/image' /> <button @click='removeImage'>Remove image</button> </p> </p> </p> </span></span><span class='mission_particulars'> <p class='mission_details'><span class='mission_name'>【四帶】老帶新</span><span class='mission_score'><span>2</span>分</span> </p> <p class='mission_progress'><span>進(jìn)行中</span></p> <p class='mission_time_evaluation'><span class='mission_time'>2017年6月</span><span class='mission_evaluation'>評(píng)價(jià):<span>3</span>人</span> </p></span> </li> <li><span class='mission_img'> <span class='mui-icon mui-icon-plusempty file'><p class='vue-upload-img-multiple'> <p v-if='img.length >0'> <ul><li v-for='image in img'> <img :src='http://m.cgvv.com.cn/wenda/image' /> <a href='javascript:void(0);' ><span @click=’delImage($index)’></span> </a></li> </ul> </p> <p> <p v-if='!image'> <input type='file' @change='onFileChange'> </p> <p v-else> <img :src='http://m.cgvv.com.cn/wenda/image' /> <button @click='removeImage'>Remove image</button> </p> </p> </p> </span></span><span class='mission_particulars'> <p class='mission_details'><span class='mission_name'>【四帶】老帶新</span><span class='mission_score'><span>2</span>分</span> </p> <p class='mission_progress'><span>進(jìn)行中</span></p> <p class='mission_time_evaluation'><span class='mission_time'>2017年6月</span><span class='mission_evaluation'>評(píng)價(jià):<span>3</span>人</span> </p></span> </li></ul> </p></p>
js代碼
module.exports = {
name: ’Upload’,data: function(){ return {images: [],img:[] }}, onFileChange:function (e) {var dom=e.currentTarget; var files = e.target.files || e.dataTransfer.files; if (!files.length) return;this.createImage(files); }, createImage (file) { var vm = this; var reader = null; var leng = file.length; for (var i = 0; i < leng; i++) { reader = new window.FileReader(); reader.readAsDataURL(file[i]); reader.onload = function (e) { vm.images.push(e.target.result); } } }, removeImage: function (e) { this.images = []; }, delImage: function (index) { this.images.shift(index); }}
};
這個(gè)js代碼,只能實(shí)現(xiàn)第一個(gè)圖片區(qū)域有圖,第二個(gè)上傳圖片區(qū)沒(méi)有圖
問(wèn)題解答
回答1:第二個(gè)遍歷的img,但是你的JS代碼里面并沒(méi)有往img里面push圖片,而是一直往images里面Push,所以第二個(gè)是不會(huì)有圖的。可以通過(guò)傳參數(shù)的方式來(lái)判斷往哪個(gè)變量里面?zhèn)鳌?/p>
<p v-if='!image'> <input type='file' @change='onFileChange($event,1)'></p>
JS代碼
onFileChange:function (e, index) { const dom = e.currentTarget; const files = e.target.files || e.dataTransfer.files; if (!files.length) return; this.createImage(files, index);},createImage (file, index) { const me = this; for (let i = 0; i < file.length; i++) { const reader = new window.FileReader(); reader.readAsDataURL(file[i]); reader.onload = function (e) { //在這里對(duì)index做判斷來(lái)處理 if (index == 1) {me.images.push(e.target.result); } else { me.img.push(e.target.result); } } }}
