Вам не нужно иметь функцию для каждого события удаления, так как вы можете проверить в документах cdk, вы можете сделать в своем html что-то вроде этого:
<div cdkDropListGroup>
<!-- All lists in here will be connected. -->
<div cdkDropList id='delete'(cdkDropListDropped)="drop($event)" ></div>
<div cdkDropList id='listX' (cdkDropListDropped)="drop($event)"<!--here you put your info and settings-->><div cdkDrag object,classes,*ngFor, etc ( >{{ name }}</div><!--repeat this for each list-->
</div>
и в вашем файле ts вам нужна одна функция для обработки события удаления:
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);
}
}
и, конечно, вы можете добавить дополнительное «если» перед всем этим, спрашивая, является ли перетаскивающий контейнер «удаленным», так что это будет что-то вроде этого:
drop(event: CdkDragDrop<string[]>) {
if(event.id === 'delete') {transferArrayItem(event.previousContainer.data,
event.container.data,
event.previousIndex,
event.currentIndex); deleteitem(event){this.deleteArray = []} else {
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);
}
}}