4

您好,我正在将我的 web 代码的一部分转换为 ionic-vue 应用程序,我想知道我们是否可以使用经典 vue 组件的离子模态控制器从我的模态中捕获 this.$emit。

基本上我想翻译

<NewAppointmentModal @onSuccess="handleAppointmentCreation"/>

this.$ionic.modalController.create({ component: NewAppointmentModal}).then(m => m.present())
//how can i catch the onSuccess event like before 
4

2 回答 2

6

父组件.vue

public openModal() {
    return this.$ionic.modalController
    .create({
      component: ModalComponent,
      componentProps: {
        data: {
          content: 'New Content',
        },
        propsData: {
          //user_id: user_id
        },
        parent: this,
      },
    })
    .then(m => m.present({

    }))
}

public mounted() {
   this.$on('close', (foo) => {
       this.$ionic.modalController.dismiss()
   })
}

模态组件.vue

<template>
   <ion-button @click="dismissModal()">Close</ion-button>
</template>
<script>
   dismissModal() {
     this.$parent.$emit('close', { foo: 'bar' })
   }
</script>
于 2019-08-16T19:30:16.097 回答
4

Brian 回答正确,但是 Vue 3 中有一个代码行更改:ParentComponent.vue

 this.$on('close', () => {
       this.$ionic.modalController.dismiss()
   })
于 2021-05-04T09:52:11.750 回答