【问题标题】:Modal not showing in vue.js模式未在 vue.js 中显示
【发布时间】:2019-05-03 08:31:50
【问题描述】:

所以我有一个问题,我在 vanilla js 中制作了一个具有各种功能的地图应用程序。我现在正试图将所有这些代码翻译成 vue.js,这是一个缓慢的过程。单击“添加步骤”按钮时,我想弹出一个模式,但没有。我已经阅读了文档并查看了示例,但我无法弄清楚。

正如我所提到的,我已经尝试了各种我在 stackoverflow 和其他地方找到的示例。

我知道解决方案可能确实非常简单,但我被卡住了,并且此模式不会显示。任何提示或技巧?使用vue时要考虑的事情? 这是我的整个项目的一个有益健康的小提琴https://jsfiddle.net/8Lmjrhgs/。 非常感谢您的时间!

这就是我的 vanilla.js 模态的样子

let btn = document.getElementById("myBtn");
let span = document.getElementsByClassName("close")[0];

btn.onclick = function() {
    modal.style.display = "block";
};
span.onclick = function() {
    modal.style.display = "none";
};
window.onclick = function(event) {
    if (event.target == modal) {
        modal.style.display = "none";
    }
};```

【问题讨论】:

    标签: javascript html css vue.js web-deployment


    【解决方案1】:

    注意:data() { return { ...

    data()  {
    return {
    showModal: false,
        isEditing: false,
        user: {
            mapTitle: 'Add a title to your map',
            mapDescription: 'Add a description to your map',
        },
        steps: [{title: "", description: ""}],
        step: {title: "", description: ""}
    }
    
    },
    

    不要把你的 v-show 放在过渡组上,把它放在直接的孩子上,实际上点击也是如此,我也不会切换“关闭模式”的值,因为你没有“打开” modal" 至少 id 使这些处理方式相同。

    <transition name="modal" :modalData='customData' @close='showModal = !showModal'>
            <div class="modal-mask" v-show="showModal">
    

    我认为这里的主要问题是您创建组件的方式,在这种特定情况下是多余的,因为无论如何所有代码都在那里(但您的真实代码实际上可能正在导入它,所以我不能肯定地说) 删除你的脚本标签得到了模式。

    https://jsfiddle.net/1kv24wyr/1/

    【讨论】:

    • 专家与否你解决了它。谢谢!是的,我不确定为什么脚本标签会导致它。在我从他们那里获得的 vue.js 示例页面上使用它并且它在那里工作正常(显然)。正如我所说的,谢谢!
    • 很高兴能帮上忙。
    • 如果您将其标记为答案 SebHolst 将不胜感激;)
    猜你喜欢
    • 2019-09-03
    • 2022-01-22
    • 1970-01-01
    • 2020-07-24
    • 2018-12-02
    • 1970-01-01
    • 1970-01-01
    • 2020-07-08
    • 1970-01-01
    相关资源
    最近更新 更多