web-dev-qa-db-ja.com

CDKドラッグアンドドロップドラッグを防ぐ方法

Angular Material CDK DragDrop module from https://material.angular.io/cdk/drag-drop/overview を使用しようとしています

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>
6
Perrier

CdkDragHandleをプロパティバインディングと一緒に使用して、トグルのようなオンまたはオフのようないくつかのプロパティを「クラス」にできます。

<div class="example-handle" [class.your-css-class]="!editing" cdkDragHandle>
<svg width="24px" fill="currentColor" viewBox="0 0 24 24">
  <path d="M10 9h4V6h3l-5-5-5 5h3v3zm-1 1H6V7l-5 5 5 5v-3h3v-4zm14 2l-5-5v3h-3v4h3v3l5-5zm-9 3h-4v3H7l5 5 5-5h-3v-3z"></path>
  <path d="M0 0h24v24H0z" fill="none"></path>
</svg>
.your-css-class{
display: none
}

ドラッグを無効にする特定のドラッグアイテムのドラッグを無効にする場合は、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>
12
Me Sa

特定のドラッグアイテムのドラッグを無効にする場合は、cdkDragDisabledアイテムにcdkDrag入力を設定することで無効にできます。

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

リファレンス: 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

2
Mohd. Shariq