【问题标题】:Fancytree: manually regenerate key to avoid duplicatesFancytree:手动重新生成密钥以避免重复
【发布时间】:2015-06-02 14:04:00
【问题描述】:

在我的应用程序中,我有两个并排有不同内容的 fancytree 实例。 tree1 不能以任何方式修改,只能通过拖放(dnd 扩展)将其节点复制到 tree2

tree2dragDrop: 事件中,我有类似的东西:

if(data.otherNode.tree === node.tree){ 
  data.otherNode.moveTo(node, data.hitMode);
}
else{
  data.otherNode.copyTo(node, data.hitMode);
}

问题是当我使用copyTo() 时,节点的密钥也会被复制,如果我在整个tree2 中多次复制同一个节点,我不可避免地会得到重复的密钥。我知道 fancytree 能够自动分配不重复的键(例如,如果您的树的源 json 没有键值),但我不知道在这种情况下如何做到这一点。

【问题讨论】:

    标签: javascript jquery plugins treeview fancytree


    【解决方案1】:

    copyTo() 有一个回调函数,允许您修改新节点。试试这个:

    if(data.otherNode.tree === node.tree){ 
      data.otherNode.moveTo(node, data.hitMode);
    }
    else{
      data.otherNode.copyTo(node, data.hitMode, function(n){
          // Set your new key here!
          n.key = <NEW_KEY>;
        })
    }
    

    【讨论】:

    • 或“删除 n.key”,这将重新生成密钥。
    • 设置'n.key = null;'将生成一个新密钥。
    猜你喜欢
    • 2020-05-18
    • 1970-01-01
    • 1970-01-01
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    • 2012-12-16
    • 2017-12-26
    • 1970-01-01
    相关资源
    最近更新 更多