我很难弄清楚这一点。
我正在使用Vue.js,我正在尝试创建一种仪表板,其中用户将能够上传最多五张访问者的图片,这些图片允许用户使用该用户提供的某些服务。
代码如下:
<div class="row" v-for="(n, i) in 5" :key="n">
<div :id="'popover' + visitor.id + '-' + i" variant="primary">
<div class="card visitor-image">
<b-popover :target="'popover' + visitor.id + '-' + i" triggers="click focus">
<template slot="title">Edit image</template>
<button
v-if="checkImage(i)"
class="btn btn-danger image-btns"
@click="deleteImage(visitor.id, visitor.Photos[i].id)"
>Delete</button>
<p
v-if="uploadProgress < 100 && uploadProgress > 0"
class="progress-text"
>Upload progress: {{ uploadProgress }}%</p>
<label
v-if="!checkImage(i)"
:for="'image-input' + visitor.id + '-' + i"
class="btn btn-primary image-btns"
>Upload</label>
<input
class="profile-image"
:id="'image-input' + visitor.id + '-' + i"
type="file"
:ref="'fileInput' + visitor.id + '-' + i"
style="display: none"
accept="image/gif, image/jpeg, image/png"
placeholder="Upload"
@change="selectFile($event, visitor.id, 'fileInput' + visitor.id + '-' + i)"
>
</b-popover>
<img
class="card-img-top profile-image"
v-if="checkImage(i)"
:src="getImage(i)"
:id="visitor.Photos[i].id"
>
<img class="card-img-top avatar-image" v-else src="../assets/avatar.png">
</div>
</div>
</div>
这些函数在这里都不重要,唯一重要的是我正在使用的这个"v-for“循环。如您所见,我遍历了所有访问者及其图像,并为每个访问者绑定了一个键。
我想知道的是,我如何使用这个键,以便一旦我点击其中一个头像图像并上传一张照片,相同的照片就会被上传到那个完全相同的div中?现在,无论我在哪里单击五个div中的一个来上传图像,它都会显示在第一个div上,即使我单击列表中的最后一个div也是如此。
谢谢
发布于 2019-03-19 23:16:58
我已经在v-for
循环中创建了用于文件上传的代码。我使用splice在特定索引处添加图像。有关更多详细信息,请参阅以下代码。
codepen - https://codepen.io/anon/pen/XGYoyr
https://stackoverflow.com/questions/55223521
复制相似问题