Я строю и приложение, где есть несколько элементов, отображаемых в наборе столбцов. (Для демонстрации, скажем, 4 столбца)
Я пытаюсь добиться функциональности перетаскивания элементов друг на друга, что приведет к объединению этих двух элементов.
структура данных typescricpt
Details{
id:number;
columns:Column[];
}
Column{
id:number;
item:Item[];
}
Item{
id:number;
text:string;
}
Итак, у меня есть компонент деталей с:
<div fxLayout="row wrap" fxLayoutAlign="center" fxLayoutGap="5px" cdkDropListGroup>
<column *ngFor="let column of details.columns" [column]="column" fxFlex>
</column>
</div>
И компонентом столбца:
<div>
Column Header
</div>
<div cdkDropList
(cdkDropListDropped)="drop($event)"
[cdkDropListData]="column.items"
*ngFor="let item of column.items">
<item cdkDrag [item]="item" [cdkDragData]="item">
</item>
</div>
Сейчас я просто печатаю его
drop(event: CdkDragDrop<Item[]>) {
console.log(event);
}
Всякий раз, когда я теперь печатаю event
после удаления, у меня есть данные о текущем контейнере и перемещаются на него, но мне потребуется информация о том, где именно (на каком item.id) я сбросил этот элемент, и не заставляю элемент уклоняться как по умолчанию cdkDragDrop ведет себя. После этого у меня будут события для слияния вещей в backend et c.
И советы будут приветствоваться
Ссылка на пример в stackblitz