字典元素的cytoscape.js -cola 文档说:gapInequalities
layout
gapInequalities: undefined, // list of inequality constraints for the gap between the nodes,
// e.g. [{"axis":"y", "left":node1, "right":node2, "gap":25}]
您如何设置在left
和的值中指定节点的对象right
?
maxkfranz 在这里有用地指出这些对象需要是集合对象。这些包含对指定节点(“元素”)的引用,并通过查询 cytoscape.js “核心对象”来创建。我不清楚的是,鉴于layout
对象需要引用节点元素,并且在告诉如何渲染它们之前不应将元素添加到图中layout
,您如何正确设置这些集合对象?
例如,要指定 nodeb
应该放在 node 之上,下面的代码中有a
什么代替???a???
和????b???
cy = cytoscape({
elements: [
{ data: { id: 'a' } },
{ data: { id: 'b' } },
. . .
],
layout: {
name: 'cola',
gapInequalities: [
{ axis: 'y', left: ???'a'???, right: ???'b'???, gap: 25 }
. . .
],
. . .
}
. . .
]);
cy.$id('a')
在这种情况下,答案不可能是cy.$id('b')
因为cy
尚未创建对象。你可以通过创建cy
没有元素的对象然后调用cy.add()
将它们放入来解决这个问题。但是layout
传递给的对象中有cytoscape()
什么?
我对cytoscape.js和cola.js都是新手,所以我很可能只是在这里遗漏了一些非常基本的想法。一个简单的示例显示了哪些函数调用设置了对象以及调用它们的顺序可能会做到这一点。在我的应用程序中,节点和边是逐渐添加到图形中的,并且动画需要显示它们正在添加,因此无论如何不要在开始时设置所有元素更有意义。