Vue dragula - слушатель события drop вызывается несколько раз - PullRequest
0 голосов
/ 18 января 2020

Я пытаюсь создать веб-приложение с перетаскиваемыми элементами, используя 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 вызывался только один раз?

...