Bootstrap Select 在 Bootstrap Vue Modal 中不工作
Bootstrap Select not working inside Bootstrap Vue Modal
我正在使用 Bootstrap Vue 和 Bootstrap select 并且 select 在模态之外完美工作
它根本不会在模态内打开。实时代码是 HERE
JS文件
Vue.component("suluct", {
template: "#suluct",
props: {
week: [String, Number],
year: [String, Number],
},
mounted() {
const $selectpicker = $(this.$el).find('.selectpicker');
$selectpicker
.selectpicker()
.on('changed.bs.select', () => this.$emit('changeWeek', this.options[$selectpicker.val()]));
},
updated() {
$(this.$el).find('.selectpicker').selectpicker('refresh');
},
destroyed() {
$(this.$el).find('.selectpicker')
.off()
.selectpicker('destroy');
},
computed: {
options() {
// run some logic here to populate options
return [
{
title: "Sunday",
value: "sunday",
}, {
title: "Monday",
value: "monday"
}
]
}
}
})
new Vue({
el: "#app"
})
HTML
<div id="app">
<suluct></suluct>
<div>
<b-btn v-b-modal.modal1>Launch demo modal</b-btn>
<!-- Modal Component -->
<b-modal id="modal1" title="Bootstrap-Vue">
<suluct></suluct>
</b-modal>
</div>
</div>
<script type="text/x-template" id="suluct">
<select class="form-control selectpicker bs-select">
<option
v-for="(option, index) in options"
:key="index"
:value="option.value"
:selected="option.selected">
{{ option.title }}
</option>
</select>
</script>
下拉菜单 select 根本打不开。感谢任何帮助
我遇到了同样的问题。尝试了各种方法后,我找到了解决办法。
当你想显示模式时,不要使用 v-b-modal 指令。
创建一个方法,使用 this.$bvModal.show() 来显示模式。
然后你应该使用 this.$nextTick([callback]) .
最后,在回调方法中使用javascript调用bootstrap-select
该方法将像
Html
<b-btn @click="ShowModal">Launch demo modal</b-btn>
Js
...
ShowModal() {
this.$bvModal.show('modal1');
this.$nextTick(()=>{
$('select').selectpicker();
})
},
...
ps:抱歉我的英语不好,希望你能明白我的意思
我正在使用 Bootstrap Vue 和 Bootstrap select 并且 select 在模态之外完美工作 它根本不会在模态内打开。实时代码是 HERE
JS文件
Vue.component("suluct", {
template: "#suluct",
props: {
week: [String, Number],
year: [String, Number],
},
mounted() {
const $selectpicker = $(this.$el).find('.selectpicker');
$selectpicker
.selectpicker()
.on('changed.bs.select', () => this.$emit('changeWeek', this.options[$selectpicker.val()]));
},
updated() {
$(this.$el).find('.selectpicker').selectpicker('refresh');
},
destroyed() {
$(this.$el).find('.selectpicker')
.off()
.selectpicker('destroy');
},
computed: {
options() {
// run some logic here to populate options
return [
{
title: "Sunday",
value: "sunday",
}, {
title: "Monday",
value: "monday"
}
]
}
}
})
new Vue({
el: "#app"
})
HTML
<div id="app">
<suluct></suluct>
<div>
<b-btn v-b-modal.modal1>Launch demo modal</b-btn>
<!-- Modal Component -->
<b-modal id="modal1" title="Bootstrap-Vue">
<suluct></suluct>
</b-modal>
</div>
</div>
<script type="text/x-template" id="suluct">
<select class="form-control selectpicker bs-select">
<option
v-for="(option, index) in options"
:key="index"
:value="option.value"
:selected="option.selected">
{{ option.title }}
</option>
</select>
</script>
下拉菜单 select 根本打不开。感谢任何帮助
我遇到了同样的问题。尝试了各种方法后,我找到了解决办法。
当你想显示模式时,不要使用 v-b-modal 指令。
创建一个方法,使用 this.$bvModal.show() 来显示模式。
然后你应该使用 this.$nextTick([callback]) .
最后,在回调方法中使用javascript调用bootstrap-select 该方法将像
Html
<b-btn @click="ShowModal">Launch demo modal</b-btn>
Js
...
ShowModal() {
this.$bvModal.show('modal1');
this.$nextTick(()=>{
$('select').selectpicker();
})
},
...
ps:抱歉我的英语不好,希望你能明白我的意思