Как настроить параметры контейнера в Aurelia-Dragula? - PullRequest
0 голосов
/ 07 февраля 2019

Я использую Aurelia-Dragula (https://github.com/michaelmalonenz/aurelia-dragula) в своем приложении и хочу настроить параметры для каждого контейнера, как в не Aurelia Dragula.

В моем случае я хочу, чтобы ContainerAгде я хочу option.copy = true и ContainerB, где я хочу option.removeOnSpill = true. поэтому я попробовал оба:

.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 голосов
/ 28 февраля 2019

Правильно - так что да, это абсолютно возможно.

Я не проверял это, но я верю, что это будет работать:

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)
  }
}
...