【发布时间】:2020-01-10 16:17:30
【问题描述】:
除了在列表之间移动项目之外,我无法弄清楚如何将 Angular 的 Drag and Drop module 用于其他事情。
我有一个项目列表,我想将它们拖到各个组中。顺便说一句,这里涉及到两个列表,一个包含组的列表,一个包含项目的列表。
这是模板代码(完整代码请参阅https://stackblitz.com/edit/angular-xp4um9):
<div class="container">
<div class="drop-target">
<mat-selection-list
cdkDropList
#dropTarget="cdkDropList"
(cdkDropListDropped)="drop($event)"
[cdkDropListData]="groups"
>
<mat-list-option *ngFor="let group of groups" [value]="group.id"
>
{{ group.name }}
</mat-list-option>
</mat-selection-list>
</div>
<div class="drag-source">
<mat-selection-list
cdkDropList
[cdkDropListConnectedTo]="[dropTarget]"
>
<mat-list-option *ngFor="let item of items" [value]="item.id"
cdkDrag
[cdkDragData]="item"
>
{{ item.name }}
</mat-list-option>
</mat-selection-list>
</div>
</div>
我想从第二个列表中拖动一个项目并将其放到第一个列表中的组中,而不是作为第二个列表的新元素,如 Internet 上随处记录的那样,而是成为该组的一部分掉到了。
我希望能够在 drop() 函数中获取源项和目标组。
另外,当将项目拖到第二个列表上时,如何防止第一个列表缩小,并防止项目出现在组下方(如下图所示)?
谢谢。
【问题讨论】:
标签: angular drag-and-drop