如何在Aurelia-Dragula中设置特定于容器的选项?

时间:2019-02-07 12:55:31

标签: aurelia dragula

我在应用程序中使用Aurelia-Dragula(https://github.com/michaelmalonenz/aurelia-dragula),并且我希望像非Aurelia Dragula一样,为每个容器设置选项。

在我的情况下,我想在想要Option.copy = true的地方拥有ContainerA,在想要Option.removeOnSpill = true的地方拥有ContainerB。所以我都尝试了:

.plugin('aurelia-dragula', (options) => {
            options.removeOnSpill = true;
            options.copy = true;
        })

但是结果是复制处于统治地位,而removeOnSpill不起作用。

选项变量登录到控制台后在aurelia-dragula中的外观: {"containers":[],"copy":true,"copySortSource":false,"revertOnSpill":true,"removeOnSpill":true,"direction":"vertical","ignoreInputTextSelection":true,"mirrorContainer":{}}

在非奥雷利亚·德拉古拉(Aurelia Dragula)中如何进行的示例(来源:https://bevacqua.github.io/dragula/):

dragula([document.getElementById(left), document.getElementById(right)], {
  copy: function (el, source) {
    return source === document.getElementById(left)
  },
  accepts: function (el, target) {
    return target !== document.getElementById(left)
  }
});

由于设置的选项有多么不同,我无法在aurelia-dragula中找到与此相关的文档,因此无法翻译。

1 个答案:

答案 0 :(得分:1)

Righto-是的,这是绝对可能的。

我还没有测试过,但是我相信这会起作用:

view.html

<template>
  <aurelia-dragula containers.one-way="containers" copy.call="shouldCopy(item, container)" accepts.call="shouldAccept(item, target, source, reference)"></aurelia-dragula>
</template>

viewmodel.js

export class ViewModel {

  get containers () {
    return [document.getElementById(left), document.getElementById(right)]
  }

  shouldCopy (item, container) {
    return container === document.getElementById(left)
  }

  shouldAccept(item, target, source, reference) {
    return target !== document.getElementById(left)
  }
}