【发布时间】:2022-02-04 19:00:30
【问题描述】:
我试图阻止在使用 Angular CDK 拖放进行排序期间禁用的移动项目
<div cdkDropList class="example-list"
[cdkDropListSortPredicate]="sortPredicateForDisableItem(items)"
(cdkDropListDropped)="drop($event)">
<div
class="example-box"
*ngFor="let item of items"
cdkDrag
[cdkDragDisabled]="item.disabled">{{item.value}}</div>
</div>
在组件中,
public items = [
{value: 'I can be dragged 1', disabled: false},
{value: 'I can be dragged 2 ', disabled: false},
{value: 'I cannot be dragged and i want to be fixed in position 3', disabled: true},
{value: 'I can be dragged 4 ', disabled: false,dinesh: 'kumar'},
];
sortPredicateForDisableItem(items: any) {
// This logic fails to prevent moving disabled item
return function(index: number, item: CdkDrag, drop: CdkDropList){
return items[index].disabled === false
}
}
排序前
排序后,Item3移动到新位置,无法固定位置
具有禁用属性的项目可以固定在它所属的位置吗?期望是,禁用的项目在排序期间始终保留在相同的索引/位置。请指教
【问题讨论】:
标签: javascript angular typescript angular-material angular-cdk-drag-drop