【发布时间】:2021-10-19 05:22:13
【问题描述】:
我正在使用 Bootstrap-Vue 模式打开一个“编辑”模式,当单击附加到我在 v-for 渲染列表中渲染的每个项目的“编辑”按钮时。
然而,每次当我点击编辑按钮时,它都会打开所有的模态,堆叠在一起,列表中的最后一个元素是顶部的模态。
如何指定它只打开被点击编辑的项目的模态/信息?
//Parent Component
<div class="dataList">
<div v-bind:key="item.id" v-for="item in this.$store.getters.data">
<Child v-bind:item="item"></Child>
</div>
</div>
//Child Component
<div>
{{this.item.name}}
{{this.item.details}}
{{this.item.completedBy}}
{{this.item.status}}
<button v-b-modal.modal-1>Edit</button>
<button v-on:click="deleteItem">Delete</button>
<div>
<b-modal id="modal-1" title="BootstrapVue">
<form @submit="editItem">
<input v-model="name">
<input v-model="details">
<input v-model="completedBy">
<select v-model="status">
<option>Fail</option>
<option>Warn</option>
<option>Pass</option>
</select><br>
<input type="submit" value="Submit" @click="$bvModal.hide('modal-1')">
</form>
</b-modal>
</div>
</div>
现在每个模态都显示正确的信息(如正确的名称、详细信息、状态等),但我只需要特定的模态。
我想它与“vb-modal.modal-1”有关,但我不确定如何动态设置每个模态的 id...有没有办法轻松地将每个模态 id 设置为匹配 item.id?
这里是 Bootstrap-Vue 模态的文档,但我没有找到我需要的。
【问题讨论】:
-
旁注,您不需要(也不应该)在模板中使用
this.。它可能会导致渲染问题。
标签: vue.js bootstrap-modal bootstrap-vue