Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.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 cdkDragHandle不';不能在子组件内部工作_Angular_Drag And Drop_Angular Cdk - Fatal编程技术网

Angular cdkDragHandle不';不能在子组件内部工作

Angular cdkDragHandle不';不能在子组件内部工作,angular,drag-and-drop,angular-cdk,Angular,Drag And Drop,Angular Cdk,使用@angular/cdk 7.2.1:如果定义包含cdkDropList和cdkDrag组件嵌套列表的父组件,则在嵌套子组件内定义cdkDragHandle将不起作用。如果相同的结构都在同一个组件中,则cdkDragHandle可以完美地工作 是否有人找到了修复方法,即使cdkDragHandle未在与cdkDrag相同的组件中定义,也能使其正常工作?此解决方案适合我: 父组件: <div cdkDropList #list="cdkDropList" [cdkDropListD

使用@angular/cdk 7.2.1:如果定义包含cdkDropList和cdkDrag组件嵌套列表的父组件,则在嵌套子组件内定义cdkDragHandle将不起作用。如果相同的结构都在同一个组件中,则cdkDragHandle可以完美地工作


是否有人找到了修复方法,即使cdkDragHandle未在与cdkDrag相同的组件中定义,也能使其正常工作?

此解决方案适合我:

父组件:

<div cdkDropList #list="cdkDropList"
  [cdkDropListData]="myArray"
  (cdkDropListDropped)="drop($event)">

  <app-item
    *ngFor="let item of myArray"
    cdkDrag>
    <div cdkDragHandle></div>
  </app-item>

</div>
然后使用position:relative和您想要的任何内容设置拖动容器的样式。我在里面有一个项目(拖动手柄),它也会获取容器的全宽和全高,其中包含一个图像(就像旁注一样)。

这对我来说很有用: 不要使用cdkDragHandle,只需停止鼠标向下的事件传播,如下所示。 然后只能拖动标题


不确定这是什么时候添加的,在child中设置
cdkDragRootElement
对我来说很有效

在子组件中,app bot提示符选择器是需要可拖动的父元素


发现问题:谢谢你,拉朱玛,提出了解决方案。这基本上是其他人在上面引用的问题链接github.com/angular/material2/issues/13784中建议的。这非常有效!
<div class="drag-container">
  <ng-content></ng-content>
  <div class="drag-handle">drag here</div>
</div>
.cdk-drag-handle {
   width: 100%;
   height: 100%;
   position: absolute;
   z-index: 100;
   background-color: transparent;
   cursor: move;
 }