Я пытаюсь создать веб-приложение с перетаскиваемыми элементами, используя Vue. js и фреймворк vue -dragula. В приложении я пытаюсь создать несколько контейнеров с элементами, которые можно перетаскивать через контейнеры.
В приложении. vue
<template>
<div v-for="container in containers">
<container/>
</div>
</template>
В контейнере. vue
<template>
<div v-dragula="elements" bag="first-bag">
<div v-for="element in elements" :key="element.id">
<element v-bind="element"/>
</div>
</div>
</template>
export default {
mounted() {
Vue.$dragula.$service.eventBus.$on('drop', () => {
console.log('Dropped');
});
}
}
Я пытаюсь включить прослушиватель событий, который может определить, когда элемент был отброшен. Пока работает метод прослушивания текущего события, он вызывается несколько раз. В частности, он называется длиной массива контейнеров. Например, если контейнеры - это массив длиной 6, «Dropped» регистрируется 6 раз. Как сделать так, чтобы прослушиватель событий для drop вызывался только один раз?