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

如何在Aurelia Dragula中设置特定于容器的选项?,aurelia,dragula,Aurelia,Dragula,我在我的应用程序中使用了aureliadragula(),我想像在非aureliadragula中一样设置每个容器的选项 在我的例子中,我希望ContainerA在我想要option.copy=true的地方,ContainerB在我想要option.removeOnSpill=true的地方。所以我尝试了两种方法: .plugin('aurelia-dragula', (options) => { options.removeOnSpill = true;

我在我的应用程序中使用了aureliadragula(),我想像在非aureliadragula中一样设置每个容器的选项

在我的例子中,我希望ContainerA在我想要option.copy=true的地方,ContainerB在我想要option.removeOnSpill=true的地方。所以我尝试了两种方法:

.plugin('aurelia-dragula', (options) => {
            options.removeOnSpill = true;
            options.copy = true;
        })
但其结果是复制占主导地位,而移除药丸不起作用

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

在非Aurelia Dragula中如何执行此操作的示例(来源:):


由于选项设置的不同,我无法在aurelia dragula中找到这方面的文档,因此我无法翻译它。

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

我还没有对此进行测试,但我相信这会起作用:

view.html

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

似乎作者最近刚刚对lib进行了一些修改,也许你应该在repo中问一下?我知道这违反了bug归档的精神,但那里的交通仍然很拥挤,所以我想他不会介意在那里回答你。如果你能得到一个答案,如果你能在这里发布一个链接,那就太棒了。非常感谢你的回复。我不想在回购协议中询问,原因与您描述的相同,但如果这里没有更多回应,我明天可能会这样做。回购协议中产生的问题:感谢Michael部分解决了问题。剩下的是shouldCopys参数未定义,而shouldcopy工作正常。在aurelia-binding.js中查看,当它在shouldAccept的参数上运行evalList时,会填充这些参数,而shouldCopy参数都未定义。当调试参数路由以到达evalList时,shouldAccept由DragulandDrop.prototype运行。\u在dragula-and-drop.js中接受,而shouldCopy不提供任何指示。谢谢-有一个bug。复制函数由dragula引擎调用,而不是dragula和drop元素。因此,它没有按照aurelia binding的预期进行调用,因此错误地传递了参数。我在v2.0.3中发布了一个修复程序
<template>
  <aurelia-dragula containers.one-way="containers" copy.call="shouldCopy(item, container)" accepts.call="shouldAccept(item, target, source, reference)"></aurelia-dragula>
</template>
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)
  }
}