Как я могу динамически установить b-popover traget в vue js?
Я хочу показать детали каждого состояния, где пользователь нажал, используя один компонент popover. Там все данные будут установлены динамически с использованием идентификатора состояния.
Теперь моя проблема в том, что я не могу установить цель динамически. Я хочу, чтобы установить цель popover, где пользователь нажал.
Я пробовал этот код ниже
<template>
<div class="d-flex flex-column text-md-center">
<div class="p-2">
<b-btn id="texas" variant="primary" @click="onOpen">Details</b-btn>
<b-btn id="california" variant="primary" @click="onOpen">Details</b-btn>
<b-btn id="florida" variant="primary" @click="onOpen">Details</b-btn>
<b-btn id="ohio" variant="primary" @click="onOpen">Details</b-btn>
</div>
<b-popover ref="popover" target="{{id}}" title="Popover">
Hello <strong>{{id}}</strong>
</b-popover>
</div>
</template>
<script>
export default {
data(){
return {
id: ''
}
},
methods: {
onOpen(e) {
this.id = e.target.id;
this.$root.$emit('bv::show::popover',e.target.id);
},
}
}
</script>
Спасибо за ваше драгоценное время.
0 ответов
Если эти идентификаторы кнопок из списка, вы можете использовать v-for
на ваше b-popover
например:
<template>
<div class="d-flex flex-column text-md-center">
<div class="p-2">
<b-btn v-for="(eachButton, i) in ids" :key="i" :id="eachButton" variant="primary" @click="onOpen">Details</b-btn>
</div>
<b-popover ref="popover" v-for="(eachId, i) in ids" :key="i" :target="eachButton" title="Popover">
Hello <strong>{{ eachId }}</strong>
</b-popover>
</div>
</template>
<script>
export default {
data(){
return {
ids: [
'texas',
'california',
'florida',
'ohio',
]
id: ''
}
},
methods: {
onOpen(e) {
this.id = e.target.id;
this.$root.$emit('bv::show::popover',e.target.id);
},
}
}
</script>