我试图在Angular 7中添加一个表,其中的一列包括一个列表,我希望允许用户跨不同行拖放任何这些列表项。
我一直在尝试使用CdkDragDrop并将其放置在表中,但是它似乎没有用。
请在下面找到代码:
<table
mat-table
[dataSource]="general"
style="width:100%; margin-top: 10px; margin-bottom: 50px"
*ngIf="general.data.length !== 0">
<ng-container matColumnDef="Camera_Physical_Index">
<th mat-header-cell *matHeaderCellDef>Camera Physical Index</th>
<td mat-cell *matCellDef="let element">
{{ element.Camera_Physical_Index }}
</td>
</ng-container>
<ng-container matColumnDef="Analytical_Function">
<th mat-header-cell *matHeaderCellDef>Analytical Function</th>
<td mat-cell *matCellDef="let element">
<div
cdkDropList
[cdkDropListData]="general.data"
(cdkDropListDropped)="dropGroup($event)"
>
<div
cdkDropListGroup
class="example-container"
cdkDrag
[cdkDragData]="element"
>
<div
cdkDropList
class="example-list"
id="{{ element.Camera_Physical_Index }}"
[cdkDropListData]="element.Analytical_Function"
(cdkDropListDropped)="dropItem($event)"
[cdkDropListConnectedTo]="getConnectedList()"
>
<div
class="example-box"
*ngFor="let item of element.Analytical_Function"
cdkDrag
[cdkDragData]="item"
>
{{ item }}
</div>
</div>
</div>
</div>
</td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="generalColumns"></tr>
<tr mat-row *matRowDef="let row; columns: generalColumns"></tr>
</table>
期望的结果如下:
答案 0 :(得分:0)
要建立列表连接,应将 cdkDropListGroup 放在该列的ng-container中,这样它将包括该列的所有列表(每行的列表)。
请在下面的示例中找到波纹管堆叠闪击机:
https://stackblitz.com/edit/angular-xzbupf
通常: 如果您有多个列表,并且想要从一个列表拖动到另一个列表: