У меня проблема с захватом событий с помощью vue.js 2. Я использую шину событий для генерации и захвата события.
В этом блоке кода я написал функцию, которая будет генерировать событие:
getLevelItems(parent) {
this.$bus.$emit('get-level-items',{level: 'third', parent: parent})
},
В этом другом блоке я фиксирую событие:
mounted() {
this.$bus.$on('get-level-items', (obj) => {
if (obj.level === 'third' && obj.parent === this.parent) {
if (this.itemsNotFilled){
this.getAllCategories(this.parent)
}
}
})
},
Хорошо, чтобы отправить событие нажатием кнопки, оно работает нормально, но если я хочу отправить событие в другой момент, например, после ответа на запрос, событие будет отправлено, но не будет захвачено.
prepareData(data) {
_.forEach(data, (value) => {
value.selected = this.categories.includes(value._id) ? true : false
value.show = this.categories.includes(value._id) ? true : false
if (value.show){
this.getLevelItems(value._id)
}
})
return data
},
Eventbus.js
import Vue from 'vue'
const bus = new Vue()
export { bus }
export default function install (Vue) {
Object.defineProperty(Vue.prototype, '$bus', {
get () {
return bus
}
})
}