Ng2-Dragula:在运行时启用拖动

时间:2018-11-29 16:37:35

标签: angular dragula ng2-dragula angular-dragula

所以,我有以下模板。

<div dragula="'card-images'" [dragulaModel]="images">
  <child-component [card]="imageCard" [ngClass]="cssClass(card)" *ngFor="let imageCard of images"></child-component>
</div>

函数cssClass根据imageCard的类型设置类。因此,根据图像卡的类型将其设置为可拖动和不可拖动。现在,我希望子组件仅在长按并动态完成后才可拖动,前提是其属性isSelected为true。我该如何实现?如何在运行时使子组件可拖动?

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以提供moves函数,并设置可拖动项目的条件。

根据您的情况,您可以执行两个步骤-

1。将类添加到基于属性的元素上。

<child-component [ngClass]="{'no-drag' : card.selected != true}"></child-component>

2。如果没有类no-drag,则拖动元素。

  constructor(private dragulaService: DragulaService) {
      dragulaService.setOptions('card-images', {
        moves: (el, source, handle, sibling) => !el.classList.contains('no-drag')
      });
    }