cytoscape.js:选定的节点固定在乔木布局中

时间:2014-04-29 18:14:16

标签: cytoscape.js arbor.js

我使用cytoscape.js 2.2.4和乔木布局渲染一个小图。

当我第二次选择一个或多个节点进行布局时,所选择的节点是固定的,不会移动。

您可以在the Arbor section of the cytoscape.js docs中看到我的意思:

  • 点击“运行代码”,将乔木布局应用于示例图表
  • 选择一个节点并再次单击“运行代码”,所选节点已固定且不移动

我使用cy.nodes(":locked")检查了锁定的节点,但选择未锁定。 Arbor.js has a 'fixed' property for nodes,但我看不到cytoscape.js设置此属性的位置。

在应用乔木布局时,是否可以移动选择的节点?我可以将fixed: false节点属性传递给arbor.js吗?

我使用它在单击节点时向图形添加内容。我添加了一些节点/边缘并再次启动布局。如果单击的节点已修复,则布局混乱。


更新1

我发现它不受节点locked状态的影响,而是grabbable。当我在布局之前运行cy.nodes().ungrabify()时,单击的节点不是固定的。

当我在布局的停止回调中执行cy.nodes().grabify()或在布局后使用长setTimeout()时,节点再次变为可抓取。

但是当我再单击另一个节点并再次启动布局时,即使console.log(cy.nodes(":grabbed"))被调用,节点也会被抓住(如cy.nodes().ungrabify()中所示)。

这看起来像某个地方覆盖了可抓取/不可抓取的属性。在乔木布局功能中Cytoscape.js itself uses ungrabify()grabify(),但这没有效果。

我如何ungrabify()grabify()节点?

1 个答案:

答案 0 :(得分:0)

您遇到了渲染器错误:https://github.com/cytoscape/cytoscape.js/issues/528

应该进入2.2.5。