Всем привет!
Есть вот такой компонент модального окна
<template lang="pug">
div(class="modal__wrap" :class="[selectedComponent ? 'visible' : false]" @click="selectedComponent = ''")
div(class="modal")
div(class="modal__close" @click="selectedComponent = ''")
div {{ selectedComponent }}
component(:is="selectedComponent")
</template>
<script>
import { eventBus } from '@/main'
import WhoAreYou from './WhoAreYou.vue'
import SearchingControl from './SearchingControl.vue'
export default {
data () {
return {
isShow: false,
selectedComponent: ''
}
},
components: {
WhoAreYou,
SearchingControl
},
created () {
eventBus.$on('ShowComponent', (component) => {
// this.isShow = val
this.selectedComponent = component
})
}
}
</script>
есть вот такой компонент кастомного "инпута"
<template lang="pug">
app-modal
ul.signup-control
li
div(id="male" class="radio" @click="chooseGender('Мужчина')" :class="[value==='Мужчина' ? 'active' : false]")
span Мужчина
li
div(id="female" class="radio" @click="chooseGender('Женщина')" :class="[value==='Женщина' ? 'active' : false]")
span Женщина
</template>
<script>
import Modal from './Modal.vue'
export default {
props: ['value'],
components: {
appModal: Modal
},
methods: {
chooseGender (gender) {
this.$emit('input', gender)
}
}
}
</script>
в родительском компоненте я слежу за состояние кастомного инпута
form.sign-up__form
div.sign-up__form-field
label(class="sign-up__label" @click.prevent="passControl('WhoAreYou')") {{ gender }}
who-are-you(v-model="gender")
import { eventBus } from '@/main'
import WhoAreYou from '../components/WhoAreYou.vue'
import SearchingControl from '../components/SearchingControl.vue'
import Modal from '../components/Modal.vue'
export default {
data () {
return {
gender: 'Я',
iSearch: 'Ищу',
selectedControl: 'WhoAreYou'
}
},
components: {
WhoAreYou,
appModal: Modal,
SearchingControl
},
methods: {
passControl (control) {
eventBus.$emit('ShowComponent', control)
// this.selectedControl = control
},
openControl () {
eventBus.$emit('ShowControl', true)
}
}
}
</script>
Вопрос в том как мне передать в модальное окно, нужный компонент, при этом чтоб в родительском я знал что выбрали?
При той реализации что сейчас модальное окно пустое. вместо него текст ()
хотя видно что название компонента передается