问题描述
我一直在尝试为数组元素创建卡组件,然后单击卡的标题,应打开一个显示该特定数组元素信息的模式。但是,在单击标题时,会打开多个模式,实际上,即使我单击特定元素的标题,也会打开所有数组元素模式。我如何做到这一点,以便仅打开该特定模态的模态?我正在使用vue引导程序
<div
v-for="(value,key,index) in flowers"
:key="value"
class="card"
>
<div v-b-modal.modal-1 class="card-header" >
<div>
{{ value.name }}
</div>
<b-modal id="modal-1" title="Flowers">
<p class="my-4" v-for="item in value.petals" :key="item">{{item}}</p>
</b-modal>
</div>
</div>
解决方法
我认为您所有的模态都具有相同的ID id="modal-1"
。您可以尝试将顶部key
的{{1}}用作ID,例如v-for
。
这是一个示例:
id="modal-{{key}}
,
您正在为所有模态分配相同的id
。这意味着您要创建一堆ID为modal-1
的模态,然后单击标题,告诉您的代码打开ID为modal-1
的所有模态。
您需要为每个模式赋予唯一的id
。
在下面的代码段中,我使用的是key
,但是如果每个条目都有唯一的值,我建议您改用它。
<div
v-for="(value,key,index) in flowers"
:key="value"
class="card"
>
<div v-b-modal:[`modal-${key}`] class="card-header" >
<div>
{{ value.name }}
</div>
<b-modal :id="`modal-${key}`" title="Flowers">
<p class="my-4" v-for="item in value.petals" :key="item">{{item}}</p>
</b-modal>
</div>
</div>