Angular 是否可以将MatPaginator和cdkDragDrop组合成角度10?
实际上,我在尝试将Angular中的本地拖放库与MatPaginator结合时遇到了一些问题。最后一个使用管道和从MatPaginatorIntl扩展的自定义配置 我想做的是将两者结合起来: 为此,我必须创建一个新方法moveItemInArray,因为默认方法只是“让我”在第一个页面中移动项目。这是值得的,如果您只想移动在单个页面中显示的一些数组项,即使如此,当您将所有项分布在多个页面中时,事情也会变得棘手 这就是为什么我创建了一个新方法来逐页比较索引:Angular 是否可以将MatPaginator和cdkDragDrop组合成角度10?,angular,typescript,drag-and-drop,angular10,Angular,Typescript,Drag And Drop,Angular10,实际上,我在尝试将Angular中的本地拖放库与MatPaginator结合时遇到了一些问题。最后一个使用管道和从MatPaginatorIntl扩展的自定义配置 我想做的是将两者结合起来: 为此,我必须创建一个新方法moveItemInArray,因为默认方法只是“让我”在第一个页面中移动项目。这是值得的,如果您只想移动在单个页面中显示的一些数组项,即使如此,当您将所有项分布在多个页面中时,事情也会变得棘手 这就是为什么我创建了一个新方法来逐页比较索引: private moveItemI
private moveItemInArrayWithPag(array:Array<any>, previousIndex:number, currentIndex:number, currentPage:number, itemsPerPage:number):void{
let firstPageIndex = 0;
let arrayPreviousIndex = 0 ;
let arrayCurrentIndex = 0;
let currentFlag = false;
let previousFlag = false;
let counter = -1;
firstPageIndex = ((currentPage * itemsPerPage) - itemsPerPage); //5 - 100 ---> 500-100 = 400
let index = firstPageIndex - 1;
while(!(currentFlag && previousFlag)){
counter++;
index++;
if(counter === currentIndex){
arrayCurrentIndex = index;
currentFlag = true;
}
if(counter === previousIndex){
arrayPreviousIndex = index;
previousFlag = true;
}
}
console.log("CURRENT:", arrayCurrentIndex, "PREVIOUS:", arrayPreviousIndex);
moveItemInArray(array, arrayCurrentIndex, arrayPreviousIndex);
}
private moveIteminarayWithPag(数组:数组,上一个索引:编号,当前索引:编号,当前页面:编号,项目页面:编号):void{
设firstPageIndex=0;
设arrayPreviousIndex=0;
设arrayCurrentIndex=0;
让currentFlag=false;
让previousFlag=false;
设计数器=-1;
firstPageIndex=((currentPage*itemsPerPage)-itemsPerPage);//5-100--->500-100=400
设index=firstPageIndex-1;
while(!(currentFlag&&previousFlag)){
计数器++;
索引++;
如果(计数器===当前索引){
arrayCurrentIndex=索引;
currentFlag=true;
}
如果(计数器===上一个索引){
arrayPreviousIndex=索引;
previousFlag=true;
}
}
log(“当前:”,arrayCurrentIndex,“上一个:”,arrayPreviousIndex);
moveItemInArray(数组、arrayCurrentIndex、arrayPreviousIndex);
}
}
我在html中得到了类似的东西:
<div cdkDropList class="card-container" (cdkDropListDropped)="onDropped($event)">
<mat-card cdkDrag *ngFor="let items of items | paginate:page_size:page_number">
...
</mat-card>
</div>
...
问题:数组正在更新,我可以拖动该项,但当我拖放它时,会返回到原始位置(在DOM中没有更新)。因此,分页器和拖放之间似乎存在一些冲突
当paginator从该*ngFor中删除时,它工作得非常完美!
但那不是我真正想要的