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:抱歉我的英语不好,希望你能明白我的意思