【发布时间】:2020-08-14 17:13:45
【问题描述】:
我有这个问题很长一段时间了,无法弄清楚,想问是否可以提供帮助。不知何故,cdkDropList 的“放置区域”的位置 在我为其设置动画时不会更新。
- 我想做的事
创建一个cdkDropList <div> 作为容器(我们称之为cdkDropList <div> Bin),我从另一个列表中删除cdkDrag 元素(我们称之为cdkDrag 元素项目)。
Bin 应该在 Item 被拾起时飞入,而在 Item 时飞出被丢弃(无论是回到原来的cdkDropList 还是Bin)。
- 会发生什么:
动画效果很好,但是当我将 Item 拖入 Bin 时,Bin 无法识别。我所说的“未识别”是指未触发 Bin 的cdkDropListDropped 功能。
只有当我通过拾取和放下 Item 来制作动画时才会出现此问题。我还尝试使用一个按钮为 Bin 设置动画,单击该按钮让 bin 出现/消失,效果很好(但这不是我想要实现的方式)。
- 示例:
https://stackblitz.com/edit/angular-cvbare?file=src%2Fapp%2Fapp.component.html
在这个 Stackblitz 示例中,我重新创建了不起作用的东西,因为如果没有上下文,发布我的代码会太多且难以理解。
注意:在示例的控制台中,当 Item 被放入 Bin 时,您将看到 Dropped something。当 Item 被放回或放在 bin 外的任何位置时,它将在控制台中打印 Dropped back。
- 到目前为止我的尝试:
使用...
...CSS 动画而不是 Angular
...ChangeDetectorRef
...Timeout
我真的被困住了,不知道如何解决这个问题,希望得到任何建议或帮助。
【问题讨论】:
标签: angular typescript angular-cdk-drag-drop