Parent component:
<template>
<v-btn v-on:click="dialog = !dialog">
</v-btn>
</template
<script>
export default {
data: () => ({
dialog: false
}
</script
Child component:
<template>
<v-layout>
<v-dialog v-model="toggledialog">
<v-btn color="green darken-1" flat="flat"
@click.native="toggledialog = false">Close</v-btn>
</v-dialog>
</v-layout>
</template>
<script>
export default {
data: () => ({
toggledialog: false,
}),
watch: {
dialog: function(){
this.toggledialog = true
},
},
props:['dialog']
}
</script>
This code works but I really don't like this workaround with watch
.
Questions:
- How to open dialog in child component when
v-model="toggledialog"
if it doesn't watch forprops:['dialog']
? - How to change
dialog
tofalse
in parent component when I i change it in child componentv-model="dialog"
if in Vue JS it is not allowed to change props?