Parent component
Code: Select all
function openDeviceModal(myData) {
dialog.open(MyForm, {
data: {
myData,
},
templates: {
footer: markRaw(ModalFooter),
},
onClose(test) {
console.log(test)
},
})
}
<script lang="ts" setup>
import { inject } from 'vue'
const { t } = useI18n()
const dialogRef = inject('dialogRef')
function closeDialog(e) {
dialogRef.value.close(e)
}
</script>
<template>
<Button
:label="t('core.action.cancel')"
class="p-button-outlined p-button-secondary"
type="button"
@click="closeDialog({ toUpdate: false })"
/>
<Button
:label="t('core.action.validate')"
autofocus
type="button"
@click="closeDialog({ toUpdate: true })"
/>
</template>
[/code]
MyForm
Code: Select all
<script lang="ts" setup>
const dialogRef: any = inject('dialogRef')
const newData = ref(dialogRef.value.data.myData)
</script>
<template>
<form action="#" class="py-4 flex flex-col">
<input v-model="newData"
</form>
</template>