ExtJS 6,折叠和扩展树 - 拖放问题

时间:2016-10-30 12:37:51

标签: extjs extjs6 extjs6-classic

https://fiddle.sencha.com/#fiddle/1jih

这是小提琴的链接。问题是树折叠然后展开后,拖放停止工作。我正在使用Ext.dd.DragZone。

重现的步骤:

  1. 例如,尝试拖动Child 1。你会发现它有效。
  2. 折叠并展开Root
  3. 您将看到Child 1(以及所有其他孩子)变得不可拖动

1 个答案:

答案 0 :(得分:1)

您只是在启动时将拖动区添加到树节点。当节点折叠并再次展开时,它们的子节点将被销毁并重新创建。您应该能够再次将拖动区域添加到expand事件中的所有子节点:

_addDDDragToNode = function (node) {
    var me = this;

    var treeView = node.getOwnerTree().getView();
    me._addDDDragZone(treeView.getNode(node));
    node.on('expand',_addDDDragToNode, me);

    Ext.each(node.childNodes, function(el){
        me._addDDDragToNode(el);
    });
};

这个解决方案不起作用似乎是一个Sencha错误:当dragzone被破坏时,不会破坏dragzone的子组件(状态代理)。我不完全确定如何规避这个错误。