самое закрытое, что я получаю, это этот стек
У меня есть три идеи
1.-Сделать пустой div как cdkDragPlaceholder
<div class="line" *cdkDragPlaceholder></div>
2.-Преобразуйте уникальный cdkDropList, в который мы можем поместить столько cdkDropList, сколько элементов у нас есть. Для этого необходимо использовать cdkDropListGroup и добавить свойство ie cdkDropListSortingDisabled = "true" к каждому cdkList. Причина в том, что еще неясно, когда мы делаем отбрасывание того, какой элемент вы отбрасываете
3. - Есть два списка для элемента, которые можно перетаскивать и использовать (cdkDragStarted) (cdkDragEnded), чтобы изменить style.display на нет при перетаскивании
. html
<div cdkDropListGroup>
<div class="example-container">
<h2>To do</h2>
<div class="example-list" id="todoList">
<div *ngFor="let item of todo;let i=index"
cdkDropList cdkDrag
cdkDropListSortingDisabled="true"
[cdkDragDisabled]="true"
[cdkDropListConnectedTo]="[doneList]"
(cdkDropListDropped)="drop($event,i)" class="example-box"
>{{item}}</div>
</div>
</div>
<div class="example-container">
<h2>Done</h2>
<div>
<div [style.display]="onDrag?'none':''" cdkDropList id="doneList"
[cdkDropListData]="done"
class="example-list" (cdkDropListDropped)="drop($event)">
<div class="example-box" *ngFor="let item of done"
cdkDrag
(cdkDragStarted)="onDrag=true"
(cdkDragEnded)="onDrag=false">
{{item}}
<div class="line" *cdkDragPlaceholder></div>
</div>
</div>
</div>
<div class="background" *ngIf="onDrag">
<div class="example-list">
<div class="example-box" *ngFor="let item of done">{{item}}
</div>
</div>
</div>
</div>
</div>
И функция сброса как
drop(event: CdkDragDrop<string[]>,index:number) {
console.log(event.previousContainer.data[event.previousIndex],
'-->',
this.todo[index]);
}