Javascript 侦听以编程方式安装的Vue组件发出的事件
我正在以编程方式在mixin中挂载Vue组件,以便将生成的HTML添加到地图弹出窗口中。这很好,但我不能听组件发出的事件,我不知道如何做到这一点,如果可以做到的话 以下是工作代码:Javascript 侦听以编程方式安装的Vue组件发出的事件,javascript,vue.js,vuejs2,Javascript,Vue.js,Vuejs2,我正在以编程方式在mixin中挂载Vue组件,以便将生成的HTML添加到地图弹出窗口中。这很好,但我不能听组件发出的事件,我不知道如何做到这一点,如果可以做到的话 以下是工作代码: import Vue from 'vue' import myComponent from 'components/myComponent' export default { methods: { makePopup(coordinates, data) { const popup = ne
import Vue from 'vue'
import myComponent from 'components/myComponent'
export default {
methods: {
makePopup(coordinates, data) {
const popup = new Vue({
...myComponent,
parent: this,
propsData: data
}).$mount()
const content = popup.$el.outerHTML
this.$map.showPopup(coordinates, content)
popup.$destroy()
}
}
}
这是可行的,但是如何(以及何时)监听myComponent发出的事件,以便在之后更新弹出内容?在我实例化/装载之后,这些事件似乎不会被触发。任何帮助都将不胜感激。提前谢谢
编辑:需要明确的是,这里出现了问题,因为在Vue实例上使用
$mount()
方法后,myComponent
发出的事件似乎没有触发。我认为这与编译实例有关,但我真的不确定这是否是正确的路径,或者这是否可能。当我设法找到正确的方法时,很好地回答了我自己的问题:事件确实被触发了,但我只是过早地销毁了组件(愚蠢的我)
您可以使用a或@max yes这是我通常做的事情,但在这里,组件是以编程方式安装的,这意味着该组件中发出的事件不会被触发。因此,这里的问题是,我如何确保他们被解雇,以便在我的方法中听取他们的意见
const popup = new Vue({
...myComponent,
parent: this,
propsData: data
}).$mount()
this.$map.showPopup(coordinates, popup.$el.outerHTML)
popup.$on('complete', () => {
// update popup content code
popup.$destroy()
})