在我的应用程序中,我有两个不同内容的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没有键值),但我不知道在这种情况下如何做到这一点。
答案 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>;
})
}