Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度CDK拖动和复制行为问题_Angular_Angular Cdk - Fatal编程技术网

Angular 角度CDK拖动和复制行为问题

Angular 角度CDK拖动和复制行为问题,angular,angular-cdk,Angular,Angular Cdk,我有两个列表,S(源),D(估计)。 当S的拖动项进入D时,该项立即从S消失,并出现在D中 S: {{data}} D: {{data}} 我希望防止列表S中的项消失,但使其同时在S和D列表中可见 备注:drop($event)函数可以处理项目删除后的复制行为,因此在两个列表中都可用。 问题是该项在CDKDROPLISTENDERED和CDKDROPLISTDROPS事件之间消失 ps2.: 由于找不到任何解决方案,我尝试了一些变通方法: 1.在D的cdkdroplistenered

我有两个列表,S(源),D(估计)。 当S的拖动项进入D时,该项立即从S消失,并出现在D中

S:


{{data}}

D:


{{data}}

我希望防止列表S中的项消失,但使其同时在S和D列表中可见

备注:drop($event)函数可以处理项目删除后的复制行为,因此在两个列表中都可用。 问题是该项在CDKDROPLISTENDERED和CDKDROPLISTDROPS事件之间消失

ps2.: 由于找不到任何解决方案,我尝试了一些变通方法: 1.在D的cdkdroplistenered事件处理程序上,我在s中复制了该项 2.在D的cdkdroplisted事件处理程序上,我从s中删除了重复的项

此解决方案99%正常工作,但当客户快速拖动鼠标时,CDK抛出异常


在stackblitz中,它100%失败:

将更改检测器注入到构造函数中

constructor(private changeDetectorRef: ChangeDetectorRef) { }
然后,当您在DropListented和DropListented call中修改列表时:

this.changeDetectorRef.detectChanges();
constructor(private changeDetectorRef: ChangeDetectorRef) { }
this.changeDetectorRef.detectChanges();