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

时间:2013-08-15 12:07:05

标签: javascript dynamic edit-in-place infovis

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

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

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

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

理想情况,我想“批量”更新所有节点的属性,使用我用于“按需”节点的相同方法,即通过ajax获取新更新的节点信息:

  1. 用户更新节点
  2. 节点已从树中删除
  3. 执行异步请求以获取更新的节点信息
  4. 节点重新插入树上;树被重新绘制
  5. 我尝试使用.graph.removeNode().graph.addNode()函数,但这会搞砸树的布局。 添加和删​​除子树设施不是一个选项,因为当我只更新1个节点时,我将不得不请求大量信息并重新插入整个子树。

    我是否可以使用任何方法或机制立即更改整个节点的内部表示?

1 个答案:

答案 0 :(得分:1)

除非更改了图中节点的位置,否则不应要求删除节点只是为了更新其属性。

可以轻松完成
node.setData('propertyName', 'newPropertyValue');

您可以仅通过

更改节点名称
node.name = 'newName';

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