Я могу реализовать функцию перетаскивания с помощью ng2-dragula, но проблема, с которой я сталкиваюсь, заключается в том, что он также перетаскивает строку заголовка, а также не может получить значения перетаскиваемой строки (данные ее строки) и строку выше и ниже из перетаскиваемый ряд.
Может ли кто-нибудь помочь мне в этом?
Я также нашел ту же проблему на github
https://github.com/valor-software/ng2-dragula/issues/ 831а>
<mat-table [dataSource]="dataSource"
matSort matSortActive="categoryName" matSortDirection="asc" matSortDisableClear
[dragula]='"seventh-bag"'>
<ng-container matColumnDef="seqNo">
<mat-header-cell *matHeaderCellDef>S.No.</mat-header-cell>
<mat-cell *matCellDef="let row;let i=index;">
{{(paginator.pageSize * (paginator.pageIndex)) + i+1}}
</mat-cell>
</ng-container>
<ng-container matColumnDef="name">
<mat-header-cell *matHeaderCellDef mat-sort-header (mouseenter)="nameIcon=false" (mouseleave)="nameIcon=true">
Category Name
<i *ngIf="nameIcon && sort.active=='join'" class="fa fa-sort"></i>
</mat-header-cell>
<mat-cell
*matCellDef="let catg;">
name
</mat-cell>
</ng-container>
<mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
<mat-row *matRowDef="let row; columns: displayedColumns"
(click)="selectedRow(row)" [ngClass]="{'highlight': selectedRowIndex == row._id}"
(mouseenter) ="dragRow = row" (mouseleave) ="mouseLeave('div A')"
>
{{row}}
</mat-row>
</mat-table>
Когда я использую описанный выше подход, я не могу получить данные перетаскиваемой строки и ее новую позицию.
2.) Когда я реализую ng2-dragula
<mat-row *matRowDef="let row; columns: displayedColumns"
(click)="selectedRow(row)" [dragula]='"seventh-bag"'
>
тогда функция перетаскивания не работает должным образом
Пожалуйста, обратитесь к картинке ниже
Источник изображения: - https://user-images.githubusercontent.com/6483007/36256531-4a34b638-124b-11e8-9b13-cd15391886ae.gif