Ng-Dragula并删除更详细的约束

时间:2018-01-07 13:59:06

标签: angular drag-and-drop ionic3 dragula ng2-dragula

我正在使用Ionic 3和Angular 4框架以及Ng-Dragula库开发应用程序。

我需要更详细地控制Ng-Dragula提供的拖放元素。

例如,我有三列。

我希望用户可以移动它:

  • 从第一列到第二列;
  • 从第二列到第三列;
  • 从第三栏到第二栏。

我不希望用户可以移动它:

  • 从第一列到第三列。
  • 从第二列到第一列。
  • 从第三列到第一列。

如何设置此详细限制?

1 个答案:

答案 0 :(得分:1)

您可以在每个容器(每列)上设置选项,其中包含“接受”功能,该功能可确定特定项目是否可以放置在特定位置的特定容器中。

例如,

dragulaService.setOptions('column-1', {
      accepts: function(el, target, source, sibling) {
          // return true to allow drop, false to disallow
      }
    })

根据https://github.com/bevacqua/dragula#optionsaccepts的文件, 这个函数的参数是:

  • el - 正在删除的项目

  • target - 要删除项目的容器

  • source - 拖动项目的容器

  • sibling - 目标容器中的项目 该项目被删除,如果作为最后一项被删除,则为null

您将返回true以允许丢弃,false可以阻止它。