CdkDragAndDrop如何防止拖动

Per*_*ier 2 angular-material angular angular-cdk

我正在尝试使用https://material.angular.io/cdk/drag-drop/overview中的Angular Material CDK DragDrop模块

通过cdkDropListDropped事件,我可以防止丢失,但也不应拖动它。如何告诉cdkDropList或每个cdkDrag元素禁用拖动?

<div class="list-group" id="orderlist" cdkDropList (cdkDropListDropped)="drop($event)">
                        <a class="list-group-item" 
                            [class.linked]="ord.linkedToPrevious" 
                            [class.selected]="ord.selected"
                            *ngFor="let ord of items" (click)="selectOrder(ord, $event)" cdkDrag>
                            <button class="btn btn-default btn-link linkeditem" [class.linked]="ord.linkedToPrevious" 
                                (click)="linkTechnology(ord, $event)" 
                                    [attr.disabled]="editing ? null : true">
                                <span class="glyphicon glyphicon-link"></span>
                            </button>
                            <h4>{{ord.technology.name}}</h4>
                        </a>
                    </div>
Run Code Online (Sandbox Code Playgroud)

Moh*_*riq 12

如果要禁用特定拖动项目的拖动,可以通过设置项目的cdkDragDisabled输入来实现cdkDrag

<div cdkDropList class="list" (cdkDropListDropped)="drop($event)">
<div *ngFor="let item of dragedItems" cdkDrag 
[cdkDragDisabled]="item.disabled"> {{item.value}} </div>
</div>
Run Code Online (Sandbox Code Playgroud)

参考:https : //github.com/angular/material2/blob/master/src/material-examples/cdk-drag-drop-disabled/cdk-drag-drop-disabled-example.html

https://github.com/angular/material2/pull/13722/commits/bd56a49dda5b5d2f0f0f2feac829afbe3752f5d5


Me *_* Sa 8

禁用拖动如果要禁用特定拖动项目的拖动,可以通过在cdkDrag项目上设置cdkDragDisabled输入来实现。此外,您可以使用cdkDropList上的cdkDropListDisabled输入或通过cdkDragHandle上的cdkDragHandleDisabled特定的句柄来禁用整个列表。

<div cdkDropList class="example-list" (cdkDropListDropped)="drop($event)">
  <div
    class="example-box"
    *ngFor="let item of items"
    cdkDrag
    [cdkDragDisabled]="item.disabled">{{item.value}}</div>
</div>
Run Code Online (Sandbox Code Playgroud)