当前位置: 首页 > 知识库问答 >
问题:

如何在vue JS中通过javascript隐藏bootstrap 5模型?

谷越
2023-03-14

我在vuejs项目的main.js中导入了bootstrap和jquery。像这样

import $ from "jquery";  // importing jquery
import Popper from "popper.js";  //importing popper js for dropdowns and other stuff bootstrap
import "bootstrap"; // importing bootstrap
import "bootstrap/dist/css/bootstrap.min.css";  //importing dist bootstrap

在我的另一个组件中,有一个模型。我希望它在我成功地发出网络请求时关闭。

在上面的模型中,如果按yes,它将在method属性上激发DeletePost(postid)函数

deletePost(postid) {
    this.$store.dispatch("blog/deletePost", posted);
    $("#deletePostModel").modal("hide");
}

但这会引发一个错误。即未定义错误'$'。因此在该组件中导入jquery,然后错误就消失了。

但现在我得到[Vue warn]:v-on处理程序中的错误:“TypeError:jquery__WEBPACK_IMPORTED_MODULE_1___default()(...).modal不是函数”在我的deletePost函数中$(“#DeletePostModel”).modal(“hide”);模型函数无法识别。我尝试了很多不同的方法

  1. 在本地导入引导程序
  2. 导入导入“bootstrap/dist/js/bootstrap”;
  3. 尝试解决此React错误:__webpack_imported_module_4_jquery__default(...)(...)。modal不是函数
  4. 试用引导模式:不是函数
  5. 以及更多随机导入jquery和bootstrap的组合(甚至我都不记得了:))

我只想知道如何隐藏模型后,我的网络请求完成,当我点击yes按钮在模型。


共有1个答案

嵇弘新
2023-03-14

我更喜欢的一种选择是创建自己的模态组件,并将jQuery从等式中剔除。下面是一个基于我创建的其他情态动词的示例。并且您仍然可以使用引导类进行造型。

BootstrapModalAlt.Vue

<template>
  <div class="bootstrap-modal-alt">
    <div id="modal-dialog" class="modal-dialog-container">
      <div class="modal-content">
        <div class="modal-header">
          <h5 class="modal-title">{{ titleContent }}</h5>
          <button type="button" class="close" @click="closeModal" aria-label="Close">
            <span aria-hidden="true">&times;</span>
          </button>
        </div>
        <div class="modal-body">
          <p>{{ bodyContent }}</p>
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-primary" @click="saveChanges">Save changes</button>
          <button type="button" class="btn btn-secondary" @click="closeModal">Cancel</button>
        </div>
      </div>
    </div>
  </div>
</template>

<script>
  export default {
    props: {
      titleContent: {
        type: String,
        required: true
      },
      bodyContent: {
        type: String,
        required: true
      }
    },
    methods: {
      closeModal() {
        this.$emit('close-modal-event');
      },
      saveChanges() {
        this.$emit('save-changes-event');
      }
    }
  }
</script>

<style scoped>
  .modal-dialog-container {
    position: fixed;
    z-index: 1;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgb(0, 0, 0);
    background-color: rgba(0, 0, 0, 0.4);
  }

  .modal-content {
    margin: 10% auto;
    width: 60%;
  }
</style>

Parent.Vue

<template>
  <div class="parent">
    <h4>Demo of Alternative to Bootstrap 4 Modal</h4>
    <div class="row">
      <div class="col-md-6">
        <button type="button" class="btn btn-secondary" @click="showModal = true">Show Modal</button>
      </div>
    </div>

    <bootstrap-modal-alt v-if="showModal"
    :titleContent="modalTitle"
    :bodyContent="modalBody"
    @close-modal-event="closeModal"
    @save-changes-event="saveChanges" />
</div>
</template>

<script>
  import BootstrapModalAlt from './BootstrapModalAlt.vue'

  export default {
    components: {
      BootstrapModalAlt
    },
    data() {
      return {
        showModal: false,
        modalTitle: "Modal Title",
        modalBody: "Modal Body"
      }
    },
    methods: {
      closeModal() {
        this.showModal = false;
      },
      saveChanges() {
        // Add logic to save changes
        this.closeModal();
      }
    }
  }
</script>
 类似资料:
  • 我读了这里的帖子,我的Bootstrap网站,并且疯狂地搜索--但是找不到我确信是一个简单的答案。 我有一个从link_to帮助器打开的引导模式,如下所示: 在我的操作中,我的代码创建然后传递到。在中,我有一些错误处理代码(ruby和javascript的混合)。如果一切顺利,我想关闭模态。 这就是我遇到麻烦的地方。当一切顺利时,我似乎不能放弃模态。 我尝试了,但没有效果。我还尝试过,这会使模态消

  • 问题内容: 通过浏览器的“查看源代码”功能查看源代码时,是否可以从网页的html隐藏Javascript代码? 我知道可以对代码进行混淆,但我希望将其 隐藏 在视图源功能中。 问题答案: 我不确定其他人是否真的直接解决了您的问题,即正在从浏览器的“查看源代码”命令中查看代码。 就像其他人所说的那样,没有办法保护要在浏览器中运行的javascript免受确定的查看者的攻击。如果浏览器可以运行它,那么

  • 我正在用Selenium解析一个网站。 我需要在隐藏类中选择一个选项。该部分的Html代码: 我尝试像往常一样通过选择功能选择一个选项: 我得到了这个错误消息:ElementNotInteractiableException:message:element notinteractiable:element当前不可见,可能无法操作。 完整的错误消息: 我想,我应该先在选项下运行一个脚本,但我不知道该

  • 我正在尝试使用手指打印在我的客户端,并得到了这段代码作为一个更大的代码的一部分。 正如您所看到的,散列是显而易见的。你能告诉我如何或什么实现使用,以便我可以隐藏或任何可以掩盖散列=5382。谢谢你。

  • 求一个插件或者json setting能够在打开项目的时候隐藏每个js文件最上面的一大堆imports. 主要是前端。 后端的引用还好,主要是前端引用一堆组件库的东西,太长了,有点烦人。 感谢了~

  • 如何隐藏控制台窗口? 我在gui应用程序中使用无头chrome和selenium从一个网页上抓取数据 启动应用程序时,打开控制台窗口,然后显示chromedriver的日志。 启动应用程序时,有没有办法隐藏chromedriver登录控制台? OS:windows10 python:3.6.3 selenium 3.8.0 chromedriver:2.33 Google Chrome canar