在Vue JS中处理Bootstrap模态隐藏事件

Arn*_*rdt 9 bootstrap-modal twitter-bootstrap-3 vue.js vuejs2

在Vue(2)中有没有一个像样的方法来处理Bootstrap(3)模态隐藏事件?

我发现这是一种JQuery方式,但我无法弄清楚如何在Vue中捕获此事件:

$('#myModal').on('hidden.bs.modal', function () {
  // do something…
})
Run Code Online (Sandbox Code Playgroud)

添加类似的东西v-on:hide.bs.modal="alert('hide')似乎不起作用.

Ber*_*ert 26

Bootstrap使用JQuery来触发自定义事件,hidden.bs.modal因此它不容易被Vue捕获(我认为它使用了本机事件).

因为您必须在页面上使用JQuery来使用Bootstrap的本机模式,所以只需使用JQuery来捕获它.假设您添加了一个ref="vuemodal"Bootstrap模式,您可以执行类似这样的操作.

new Vue({
  el:"#app",
  data:{
  },
  methods:{
    doSomethingOnHidden(){
      //do something
    }
  },
  mounted(){
    $(this.$refs.vuemodal).on("hidden.bs.modal", this.doSomethingOnHidden)
  }
})
Run Code Online (Sandbox Code Playgroud)

工作实例.

  • 我曾希望有一个更干净的(非 jquery)解决方案,但这可能是我会使用的,直到出现更好的东西;) (3认同)

yar*_*www 11

请参阅https://bootstrap-vue.js.org/docs/components/modal#overview 在这里您可以找到事件“隐藏”或“隐藏”,因此可以绑定此事件:

<b-modal ref="someModal" @hide="doSometing">
Run Code Online (Sandbox Code Playgroud)

  • 如果您正在使用bootstrap-vue,这是正确的答案,但是现在这就是原来的问题。切换到Bootstrap-Vue是一个非常重大的变化,并不是所有人的正确答案。 (5认同)