Vue.js - 元素 UI - 嵌套对话框不会打开 - v-if v-show

狮子座可可

我正在使用vue.js 2.3element-ui

情况

我只是在玩这个el-dialog组件。我正在测试 3 种不同的选项,但只有三者中的一种有效

<popup v-if="showDialog" :show-dialog.sync="showDialog"></popup> 好的

<popup v-show="showDialog" :show-dialog.sync="showDialog"></popup> 部分正常

<popup :show-dialog.sync="showDialog"></popup> 不好

代码

<div id="app">
  <button @click="showDialog = true">Show Component PopUp</button>
  <popup v-if="showDialog" :show-dialog.sync="showDialog"></popup>
</div>



   <template id="popup">
        <el-dialog :visible.sync="show" @visible-change="updateShowDialog" >{{data}}</el-dialog>
    </template>

Vue.component('popup', {
    name: "popup",
  template: '#popup',
  props : ['showDialog'],
  data(){
    return {
        show: this.showDialog,
      data: "Hello"
    }
  },
  methods: {
   updateShowDialog(isVisible) {
       if (isVisible) return false;
       this.$emit('update:showDialog', false )
   }
  },
   created:function (){
  },
});

var vm = new Vue({
  el: '#app',
  data: {
    showDialog: false,
  },
  methods: {

  }
});

小提琴

https://jsfiddle.net/dbg2e9z2/好的

https://jsfiddle.net/gtxeaq41/部分OK

https://jsfiddle.net/dwr5dmfg/不行

问题

使用第二个选项,弹出窗口打开但不显示内容。使用第三个选项,根本不显示弹出窗口。

问题

为什么会有这种行为?

我应该怎么做才能el-dialog正常工作同时避免v-if(我想将数据保留在缓存中,因为对话框包含大量数据)

狮子座可可

基于@Max 回答https://jsfiddle.net/64Ltkne7/

<div id="app">
  <button @click="showDialog = true">Show Component PopUp</button>
  <popup :show-dialog.sync="showDialog"></popup>
</div>

<template id="popup">
    <el-dialog :visible.sync="show" @visible-change="updateShowDialog" >{{data}}</el-dialog>
</template>

console.clear()

let popupData;

Vue.component('popup', {
    name: "popup",
  template: '#popup',
  props : ['showDialog'],
  data(){
    return {
        show: this.showDialog,
      data: "Hello"
    }
  },
  watch: {
    showDialog: function(n,o){
            this.show = this.showDialog;    
    }
  },
  methods: {
   updateShowDialog(isVisible) {
       if (isVisible) return false;
       this.$emit('update:showDialog', false )
   }
  },
   mounted:function (){
   alert('mounted')
  },
});

var vm = new Vue({
  el: '#app',
  data: {
    showDialog: false,
  },
  methods: {

  }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Vue.js - 元素 UI - 不会从下拉菜单中打开嵌套对话框

来自分类Dev

带数据参数的Vue.js v-show函数

来自分类Dev

向v-for中显示的数组添加新元素时,Vue.js样式不会更改

来自分类Dev

v-for中的vue js选择框

来自分类Dev

Vue.js v-show和v-else无法按预期工作吗?

来自分类Dev

一旦可见,如何将焦点设置到vue.js sfc根元素(切换了v-show)

来自分类Dev

Vue.js:在不同时使用v-for和v-if的情况下转换元素的最佳方法吗?

来自分类Dev

Vue.js:在同一输入元素上设置v-model和v-bind:value

来自分类Dev

Vue js无法从嵌套v-for中拼接项目

来自分类Dev

Vue.js:为什么我的v-else指令导致元素多次渲染?

来自分类Dev

Vue.js-使用:value时,select元素不更新,v-model很好

来自分类Dev

Vue JS-显示/隐藏用v-for生成的列表中的单个元素

来自分类Dev

我该如何在v循环中选择一个元素?(vue.js)

来自分类Dev

vue.js中v-for元素中的动态插值计算方法名称

来自分类Dev

来自 $refs 的 Vue.js v-for 元素在监视功能中损坏

来自分类Dev

Vue Js - 在单行中使用 v-for 循环显示元素(用于分页)

来自分类Dev

Vue.js的Toast UI编辑器中的v模型

来自分类Dev

Vue.js-element-ui el-table v-for丢失了最后一项

来自分类Dev

vue.js 中的 v-for 中的 v-if

来自分类Dev

Vue.js v模型数据对象

来自分类Dev

Vue.js v模型未更新

来自分类Dev

从Json填充V-Select-Vue JS

来自分类Dev

在切换按钮之前,Vue不会显示使用v-for创建的初始元素

来自分类Dev

如何使用v-show正确渲染元素?

来自分类Dev

使用Vue.js和Vuetify对话框访问dom元素

来自分类Dev

如何通过cypress.io和vue.js v-select查找元素并进行选择?

来自分类Dev

如何使用v-for访问html文件的一个标签中的vue js的多个数据元素?

来自分类Dev

vue.js v-bind:value 不适用于选择选项表单元素

来自分类Dev

v-show vue中的未定义错误

Related 相关文章

  1. 1

    Vue.js - 元素 UI - 不会从下拉菜单中打开嵌套对话框

  2. 2

    带数据参数的Vue.js v-show函数

  3. 3

    向v-for中显示的数组添加新元素时,Vue.js样式不会更改

  4. 4

    v-for中的vue js选择框

  5. 5

    Vue.js v-show和v-else无法按预期工作吗?

  6. 6

    一旦可见,如何将焦点设置到vue.js sfc根元素(切换了v-show)

  7. 7

    Vue.js:在不同时使用v-for和v-if的情况下转换元素的最佳方法吗?

  8. 8

    Vue.js:在同一输入元素上设置v-model和v-bind:value

  9. 9

    Vue js无法从嵌套v-for中拼接项目

  10. 10

    Vue.js:为什么我的v-else指令导致元素多次渲染?

  11. 11

    Vue.js-使用:value时,select元素不更新,v-model很好

  12. 12

    Vue JS-显示/隐藏用v-for生成的列表中的单个元素

  13. 13

    我该如何在v循环中选择一个元素?(vue.js)

  14. 14

    vue.js中v-for元素中的动态插值计算方法名称

  15. 15

    来自 $refs 的 Vue.js v-for 元素在监视功能中损坏

  16. 16

    Vue Js - 在单行中使用 v-for 循环显示元素(用于分页)

  17. 17

    Vue.js的Toast UI编辑器中的v模型

  18. 18

    Vue.js-element-ui el-table v-for丢失了最后一项

  19. 19

    vue.js 中的 v-for 中的 v-if

  20. 20

    Vue.js v模型数据对象

  21. 21

    Vue.js v模型未更新

  22. 22

    从Json填充V-Select-Vue JS

  23. 23

    在切换按钮之前,Vue不会显示使用v-for创建的初始元素

  24. 24

    如何使用v-show正确渲染元素?

  25. 25

    使用Vue.js和Vuetify对话框访问dom元素

  26. 26

    如何通过cypress.io和vue.js v-select查找元素并进行选择?

  27. 27

    如何使用v-for访问html文件的一个标签中的vue js的多个数据元素?

  28. 28

    vue.js v-bind:value 不适用于选择选项表单元素

  29. 29

    v-show vue中的未定义错误

热门标签

归档