Fancytree:手动重新生成密钥以避免重复

时间:2015-06-01 19:04:40

标签: javascript jquery plugins treeview fancytree

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

dragDrop:的{​​{1}}事件中,我有类似的内容:

tree2

问题在于,当我使用if(data.otherNode.tree === node.tree){ data.otherNode.moveTo(node, data.hitMode); } else{ data.otherNode.copyTo(node, data.hitMode); } 时,节点的密钥也会被复制,如果我在copyTo()中多次复制同一个节点,我不可避免地会遇到重复的密钥。我知道fancytree能够自动分配非重复键(例如,如果你的树的源json没有键值),但我不知道在这种情况下如何做到这一点。

1 个答案:

答案 0 :(得分:2)

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