我正在尝试使用 InfoVis SpaceTree 来允许用户管理一些信息。单击节点后,将创建一个表单并显示给用户,这允许他通过 ajax 更新该特定节点的属性。
此外,树使用“按需”节点模式显示,因此我有特定的方法来检索具有特定节点的任何深度的任何子树,使用 ajax 和 json 数据。
我的问题在于用户提交节点表单后节点信息更新。例如,标签上的节点名称应在用户向节点提交名称更改后更新。像这样,有(许多)其他属性应该反映在标签上,并且允许用户更改。
我需要的是在表单提交完成后更新单个节点的内部表示,并重绘树。
理想情况下,我想一次“批量”更新所有节点的属性,使用与“按需”节点相同的方法,即通过 ajax 获取新更新的节点信息:
- 用户更新节点
- 节点从树中删除
- 发出异步请求以获取更新节点的信息
- 节点被重新插入到树上;树被重新绘制
我尝试过使用.graph.removeNode()
和.graph.addNode()
功能,但这搞砸了树形布局。添加和删除子树工具不是一个选项,因为这样我将不得不请求大量信息并在仅更新 1 个节点时重新插入整个子树。
是否有任何方法或机制可以用来一次更改整个节点的内部表示?