Ng2-Dragula:在 运行 时间启用拖动
Ng2-Dragula: Enable drag at run time
所以,我有以下模板。
<div dragula="'card-images'" [dragulaModel]="images">
<child-component [card]="imageCard" [ngClass]="cssClass(card)" *ngFor="let imageCard of images"></child-component>
</div>
函数cssClass根据imageCard的类型设置class。所以根据图片Card的类型设置为可拖动和不可拖动。现在,我希望子组件只有在长按后其 属性 isSelected 为真时才可拖动,并且这是动态完成的。我怎样才能做到这一点?如何使子组件在 运行 时间可拖动?
谢谢。
您可以提供 moves
功能并设置项目何时可拖动的条件。
对于您的情况,您可以执行两个步骤 -
1。添加 class 到基于 属性 的元素。
<child-component [ngClass]="{'no-drag' : card.selected != true}"></child-component>
2。如果没有 class no-drag
.
则拖动元素
constructor(private dragulaService: DragulaService) {
dragulaService.setOptions('card-images', {
moves: (el, source, handle, sibling) => !el.classList.contains('no-drag')
});
}
所以,我有以下模板。
<div dragula="'card-images'" [dragulaModel]="images">
<child-component [card]="imageCard" [ngClass]="cssClass(card)" *ngFor="let imageCard of images"></child-component>
</div>
函数cssClass根据imageCard的类型设置class。所以根据图片Card的类型设置为可拖动和不可拖动。现在,我希望子组件只有在长按后其 属性 isSelected 为真时才可拖动,并且这是动态完成的。我怎样才能做到这一点?如何使子组件在 运行 时间可拖动?
谢谢。
您可以提供 moves
功能并设置项目何时可拖动的条件。
对于您的情况,您可以执行两个步骤 -
1。添加 class 到基于 属性 的元素。
<child-component [ngClass]="{'no-drag' : card.selected != true}"></child-component>
2。如果没有 class no-drag
.
则拖动元素
constructor(private dragulaService: DragulaService) {
dragulaService.setOptions('card-images', {
moves: (el, source, handle, sibling) => !el.classList.contains('no-drag')
});
}