【问题标题】:Ember-Drag-Sort: Usage of "handle" selector results in dragEnd params being passed undefinedEmber-Drag-Sort:“句柄”选择器的使用导致 dragEnd 参数被传递未定义
【发布时间】:2018-08-22 16:56:55
【问题描述】:

每当我将类选择器分配给“句柄”选择器并拖动时,传递给 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)

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

【问题讨论】:

    标签: ember.js ember-drag-sort


    【解决方案1】:

    它的工作原理如下:

    {{#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 应该包含一个哈希值。

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

    更新问题后,请务必对我的回答进行评论,以便我收到通知。

    【讨论】:

    • 这让我走上了正轨——谢谢!我的拖动句柄被传递到上下文容器中,这一定是导致传入“幽灵”参数。一旦我将它移到与排序列表相同的模板中,一切正常。
    猜你喜欢
    • 2019-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多