Javascript Vue&;Quasar-共享自定义对话框组件

Javascript Vue&;Quasar-共享自定义对话框组件,javascript,vue.js,quasar-framework,Javascript,Vue.js,Quasar Framework,我看了没有任何答案,我有接近相同的问题,但我的结构代码有点不同。在我的父母表上我有 <q-dialog prevent-close v-model="showProfileForm" class="profileDialog"> <profile-dialog></profile-dialog> </q-dialog> 或者添加一个 @hide 我需要知道对话框窗体何时关闭以保存更

我看了没有任何答案,我有接近相同的问题,但我的结构代码有点不同。在我的父母表上我有

        <q-dialog prevent-close v-model="showProfileForm" class="profileDialog">
        <profile-dialog></profile-dialog>
        </q-dialog> 
或者添加一个

       @hide
我需要知道对话框窗体何时关闭以保存更改或防止关闭,除非单击按钮。即使在父级中添加“阻止关闭”也不起作用

   <q-dialog prevent-close v-model="showProfileForm" class="profileDialog">
   <profile-dialog></profile-dialog>
   </q-dialog> 


如果我在q对话框中创建表单,因此,它成为对话框中的一个对话框,并在关闭时将v-modal设置为true。在单击页面之前,父窗体仍然有轻微的灰色覆盖,并且窗体将不会再次打开

您可以将配置文件对话框中的
emit
事件用于pass事件,以便知道窗体是否已提交,并使用持久so如果在对话框外单击或按ESC键,则该用户不能关闭该对话框;此外,应用程序路由更改不会将其忽略

   <q-btn v-if="step == 4" @click="FinishClick" color="primary" label="Finish"/>



    methods: {
        FinishClick() {
            alert("Finish Click From Profile Dialog");
            this.$emit("profile_dialog_emmit",{'MSG':'TestData'})
        }
    }

  <profile-dialog @profile_dialog_emmit="my_fun($event)"></profile-dialog>
演示-


转到最后一步,单击finish(完成)将触发事件,您可以看到来自父组件的警报,并检查控制台中显示的来自父组件的数据。

我真正需要做的就是更改您的信息,防止接近持久性,我得到了所需的信息。非常感谢。
   <q-dialog prevent-close v-model="showProfileForm" class="profileDialog">
   <profile-dialog></profile-dialog>
   </q-dialog> 
   <q-btn v-if="step == 4" @click="FinishClick" color="primary" label="Finish"/>



    methods: {
        FinishClick() {
            alert("Finish Click From Profile Dialog");
            this.$emit("profile_dialog_emmit",{'MSG':'TestData'})
        }
    }

  <profile-dialog @profile_dialog_emmit="my_fun($event)"></profile-dialog>
methods:{
    my_fun(data){
        console.log("Assad");
        alert("From Index Check Console for Data");
        console.log(data)
        this.showProfileForm=false;
    }
  }