InfoVis SpaceTrees:在表单提交后更新节点信息

InfoVis SpaceTrees: node information update after form submit

本文关键字:更新 节点 信息 表单提交 SpaceTrees InfoVis      更新时间:2023-09-26

我正在尝试使用InfoVis SpaceTree来允许用户管理一些信息。单击某个节点后,会创建一个表单并显示给用户,用户可以通过ajax更新该特定节点的属性。

此外,该树是使用"按需"节点模式显示的,因此我有特定的方法来检索特定节点的任何深度的子树,使用ajax和json数据。

我的问题在于用户提交节点表单后的节点信息更新。例如,标签上的节点名称应该在用户向节点提交名称更改后更新。像这样,还有(许多)其他属性应该反映在标签上,并且允许用户更改。

我需要的是在表单提交完成后更新单个节点的内部表示,并重新绘制树。

理想情况下,我想一次"批量"更新所有节点的属性,使用与"按需"节点相同的方法,即通过ajax获取最新更新的节点信息:

  1. 用户更新节点
  2. 节点已从树中删除
  3. 异步请求用于获取更新节点的信息
  4. 节点被重新插入到树上;树被重新绘制

我尝试过使用.graph.removeNode().graph.addNode()函数,但这会破坏树的布局。添加和删除子树功能不是一个选项,因为当只有一个节点更新时,我将不得不请求大量信息并重新插入整个子树。

有没有什么方法或机制可以让我一次改变整个节点的内部表示?

除非节点在图中的位置发生了更改,否则不应该仅仅为了更新其属性而要求删除节点。你可以很容易地通过

node.setData('propertyName', 'newPropertyValue');

您可以通过更改节点名称

node.name = 'newName';

您可以迭代所有属性并在节点中更新它们。