Ember-Drag-Sort:"handle" 选择器的使用导致未定义的 dragEnd 参数传递

Ember-Drag-Sort: Usage of "handle" selector results in dragEnd params being passed undefined

每当我将 class 选择器分配给 "handle" 选择器并拖动时,所有传递给 DragEndAction 的参数都是未定义的

下面的代码
    = drag-sort-list [
                items=sortedSections
                group='sections'
                dragEndAction=(action 'dragEnd')
                handle=".drag-handle"
            ] as | item |

处理代码:

        i.material-icons.drag-handle draggable="true"
          | drag_indicator

导致此错误: console_error *注意我使用的是徽章模板语法

对于其他上下文,这是我的 dragEnd 动作的样子:

        dragEnd({ sourceList, sourceIndex, targetList, targetIndex }) {
          console.log(sourceList, sourceIndex, targetList, targetIndex);
          if (sourceList === targetList && sourceIndex === targetIndex) return;

          const item = sourceList.objectAt(sourceIndex)
          sourceList.removeAt(sourceIndex); 
          targetList.insertAt(targetIndex, item)

当我取下手柄选择器时一切正常,不确定发生了什么。

它应该是这样工作的:

{{#drag-sort-list
  items         = items
  handle        = ".handle"
  dragEndAction = (action 'dragEnd')
  as |item|
}}
  <span class="handle" draggable=true>
    [handle]
  </span>

  {{item.name}}
{{/drag-sort-list}}

Working demo.

我已经检查过代码,handle 参数根本不涉及调用操作,并且不可能使用每个参数调用操作作为 undefined

我敢打赌,您搞砸了 Emblem 并为操作提供了额外的参数,例如。 G。 (action 'dragEnd' 'foo') 而不是 (action 'dragEnd').

您可以在操作中通过 console.log(arguments) 检查是否属于这种情况。通常 arguments 应该包含一个散列项。

如果这没有帮助,请提供您问题的再现演示,我会更新我的答案。

更新问题后,请务必回复我的回答并发表评论,以便我收到通知。