web-dev-qa-db-fra.com

Angular CDK Drag & Drop: Ne vous déplacez pas l'élément source

J'essaie d'implémenter un éditeur où l'on peut faire glisser un élément pour l'ajouter au contenu principal, le problème est que l'élément source est toujours détruit lorsque je traîne hors du conteneur d'élément source.

Existe-t-il un moyen de forcer l'élément source à rester là où il est toujours possible de faire glisser et de déposer l'article? Fondamentalement, je veux un comportement de copie de cela au lieu d'un comportement de déménagement.

J'ai déjà vu d'autres questions qui correspondent à ce que je veux réaliser fondamentalement, mais aucun d'entre eux ne m'a vraiment aidé comme les questions sur la manière de le faire techniquement pour copier un article pendant que je veux savoir comment je mette en œuvre ce comportement. dans l'interface utilisateur comme étant confuse de voir si l'article disparaît simplement.

13
Yassine Zeriouh

remplacer

drop(event: CdkDragDrop<string[]>) {
  if (event.previousContainer === event.container) {
    moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);
  } else {
    transferArrayItem(
      event.previousContainer.data,
      event.container.data,
      event.previousIndex,
      event.currentIndex
    );
  }
}

avec

drop(event: any) {
  if (event.previousContainer === event.container) {
    moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);
  } else {
    copyArrayItem(
      event.previousContainer.data,
      event.container.data,
      event.previousIndex,
      event.currentIndex
    );
  }
}
1
arpit tayal