Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Handle Bootstrap modal hide event in Vue JS

Is there a decent way in Vue (2) to handle a Bootstrap (3) modal hide-event?

I found this as a JQuery way but I can't figure out how to capture this event in Vue:

$('#myModal').on('hidden.bs.modal', function () {   // do something… }) 

Adding something like v-on:hide.bs.modal="alert('hide') doesn't seem to work.

like image 789
Arno van Oordt Avatar asked Feb 28 '17 15:02

Arno van Oordt


1 Answers

Bootstrap uses JQuery to trigger the custom event hidden.bs.modal so it is not easily caught by Vue (which I believe uses native events under the hood).

Since you have to have JQuery on a the page to use Bootstrap's native modal, just use JQuery to catch it. Assuming you add a ref="vuemodal" to your Bootstrap modal you can do something like this.

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

Working example.

like image 166
Bert Avatar answered Nov 10 '22 01:11

Bert