vue+bootstrap 把Modal抽成组件,data-dismiss失效

发布于 2022-09-11 19:02:01 字数 2479 浏览 19 评论 0

代码用的vue+bootstrap 把Modal抽成了组件,但是data-dismiss失效了,
点击弹窗的X和取消都没有效果,又不想每次都写个方法,
请问是什么没引入吗?有什么解决方案呀?

X和取消点击都没反应
clipboard.png

Modal.vue

<template>
    <div class='modal fade' :class="{'show': modal.show}" :style="{display: modal.show ? 'block' : 'none'}" id='successModal' tabindex='-1' role='dialog' aria-labelledby='exampleModalLabel' aria-hidden='true'>
      <div class='modal-dialog modal-dialog-centered' role='document'>
        <div class='modal-content'>
          <div class='modal-header'>
            <h5 class='modal-title' id='exampleModalLabel'>提示</h5>
            <button type='button' class='close' data-dismiss='modal' aria-label='Close'>
              <span aria-hidden='true'>&times;</span>
            </button>
          </div>
          <div class='modal-body'>
            {{modal.contain}}
          </div>
          <div class='modal-footer'>
            <button type='button' class='btn bg-blueButton' @click="modalClickHandler">确定</button>
            <button v-show="modal.cancel" type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
          </div>
        </div>
      </div>
    </div>
</template>

<script type="text/ecmascript-6">
  export default {
    props: ['modal'],
    methods: {
      modalClickHandler() {
        this.$emit('modalClick');
      }
    }
  };
</script>

<style scoped>
</style>

index.vue

template:

<v-modal :modal="modal" @modalClick="modalClickHandler"></v-modal>

js

import modal from '../../components/modal/modal';

  export default {
    data() {
      return {
        modal: {
          contain: '确定要退出登录吗?',
          cancel: true,
          show: false
        }
      };
    },
    methods: {
      logoutModalHandler() {
        this.modal.show = true;
      },
      modalClickHandler() {
        this.modal.show = false;
        axios.get(this.NET.API_HOST + '/v1/user/logout')
          .then(response => {
              console.log(response);
            }
          })
          .catch(error => {
            console.log(error);
          });
      }
    components: {
      'v-modal': modal
    }
  };

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文