【问题标题】:Can’t catch ‘hidden.bs.modal’ in vuejs无法在 vuejs 中捕获“hidden.bs.modal”
【发布时间】:2018-12-28 07:31:21
【问题描述】:

我在 Laravel 项目中使用 vue.js,但它无法捕获 hidden.bs.modal 事件。

laravel-mix 中使用autoload 并在vue.js 中捕获hidden.bs.modal 时会出现此问题。 (出vue.js就可以了)

混合文件

mix
.autoload({
    'jquery': ['$', 'window.jQuery', 'jQuery'],
    'moment': ['moment','window.moment'],
})
...

当使用包pc-bootstrap4-datetimepickerlaravel-mix时,我必须使用autoload来解决问题。

Vue 文件

<template>
    <div id="my_modal"
         class="modal"
         tabindex="-1"
         role="dialog"
         aria-hidden="true"
         ref="my_modal">
        ...
    </div>
</template>

<script>
    export default {
        mounted() {
            $(this.$refs.my_modal).on('hidden.bs.modal', this.doSomething);
        },

        methods: {
            doSomething() {
                // Do something
            },
        },
    }
</script>

所以如果我从webpack.mix.js 中删除autoload,我就可以捕捉到这个事件。但是包pc-bootstrap4-datetimepicker 将不起作用。发生什么了?谢谢。

【问题讨论】:

标签: vue.js bootstrap-4 bootstrap-modal laravel-mix


【解决方案1】:

你可以这样抓住它

<div ref="myModalRef"></div>

$(this.$refs.myModalRef).modal('hide')

$(this.$refs.myModalRef).modal('show')

但它会给你 console.log 错误,因为它使用 JQuery.... 我仍然没有找到答案,但当我知道时我会告诉你

【讨论】:

  • 这是不正确的。 hideshow 是 Bootstrap 模态组件上的方法,它们分别隐藏和显示目标模态。
  • 我不明白。你的意思是它不正确的意思是它不起作用,还是不正确的意思是它是一种不好的做法??
  • 这是不正确的,因为它不会做 OP 想要的。您可以在 Bootstrap 文档中阅读 showhide 所做的事情:getbootstrap.com/docs/4.1/components/modal/#modalshow
猜你喜欢
  • 2018-12-26
  • 1970-01-01
  • 2021-05-02
  • 1970-01-01
  • 2020-02-09
  • 2020-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多