2017-04-04 81 views
2

我試圖從這個鏈接遵循建議恢復的下降動作:取消降NG2 Dragula

Dragula :revert drop in ng2-dragula

,但沒有成功。

我想要做的是能夠在特定條件下恢復拖動操作。或者在條件下完全禁用Dragula。

HTML:

的.ts文件

export class VisibilityConfiguratorComponent implements OnChanges { 

     colsCopy: ColumnItem[]; 

     constructor(private dragulaService: DragulaService) { 
     let drake = dragulaService.drop.subscribe((value) => { 
      this.applyConfig(); 
     }); 
     } 

     ngOnInit() { 
     this.dragulaService.setOptions('bag', { moves: (el, container, handle) => { return false; } }); 
    } 
} 

正如你可以看到,我想完全禁用舉措,但是這似乎並沒有產生任何影響。

+1

您確定需要移動選項嗎?也許接受選項會更相關? https://github.com/bevacqua/dragula#optionsaccepts – NtsDK

回答

1

您可以使用此方法取消條件下的拖動操作:

if(yourCondition) 
    this.dragulaService.find('yourBagName').drake.cancel(true) 

什麼在你取消的事件發生是基於你的包的選擇,我用這一個:

this.dragulaService.setOptions('yourBagName', { 
    revertOnSpill: true 
}); 

如果將此選項設置爲您的行李,則取消事件將恢復您的拖動操作。 更多選項:https://github.com/bevacqua/dragula#dragulacontainers-options

+0

Sory您的解決方案不適合我。除了我不想恢復OnSpill,但不允許用戶在特殊情況下拖動元素。當條件改變時,用戶應該能夠拖動元素。 –