首页 > 解决方案 > 如果位置发生变化,则清空 cdkDropList 容器“丢失放置区域”

问题描述

再生产

嗨,我发现了一些奇怪的问题,使用一个简单的空 div 作为“放置容器”,以便向用户显示一个放置内容的框。似乎如果这个盒子由于某种原因改变了它的可见性、位置等……它就失去了“掉落能力”。

这是用于重现该错误的 stackblitz:

https://stackblitz.com/edit/angular-hqxu2m

重现步骤:

  1. 测试将“done”元素拖入“to do”列表的示例(每次在拖动元素时进入“to do”容器时,都会出现“exited”控制台日志)
  2. 在模板文件中,取消注释第二行(按照注释的建议)并重试步骤 1,现在不可能再次使控制台日志“退出”

预期行为

容器的放置区应始终处于活动状态

实际行为

每当容器四处移动或可见性发生变化时,容器的放置区就会丢失

环境

角度:8.2.14

CDK/材料:8.2.3

铬:78.0.3904.97

操作系统:Windows

标签: javascriptangulardrag-and-dropangular-materialangular-cdk

解决方案


(cdkDropListExited)="log($event)"

应该在cdkDrag元素上,因为它是一个ckdDrag函数。

请参阅https://material.angular.io/cdk/drag-drop/api以供参考。


推荐阅读