2016-12-14 101 views
1

我想在頂部顯示名稱組,並取消其上的拖動事件。 如何禁用移動一些元素,如果這個組名稱在頂部。 我的代碼是:如何禁用在ng2-dragula上拖動某個元素

dragulaService.drag.subscribe((value) => { 
     console.log(`drag: ${value[0]}`); 
    }); 

我的模板:

<div class='wrapper'> 
    <div class='container' *ngFor='let group of groups' [dragula]='"nested-bag"'> 
    <div class="center-block">Table Number : {{group.name}}</div> 
    <div *ngFor='let item of group.items' [innerHtml]='item.name'></div> 
    </div> 
</div> 

回答

6

找到一個解決方案:

dragulaService.setOptions('nested-bag', { 
     revertOnSpill: true, 
     moves: function (el:any, container:any, handle:any):any { 
     debugger 
     console.log(el, container); 
     return false; 
     } 
    }); 
+0

很好的答案! !但是我們如何在運行時禁用拖動?例如:基於某種條件?有沒有辦法獲得行李清單? –

+0

移動功能是基於它將返回真/假的條件。 –

0

要與特定類禁用拖動的元素:

dragulaService.setOptions('PUT_CONTAINER_NAME_HERE', { 
    moves: function (el: any, container: any, handle: any): any { 
     if (el.classList.contains('PUT_YOUR_CLASS_HERE')) { 
      return false; 
     } 

     return true; 
    } 
});