[cytoscape.js-cola documentation词典的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有用地指出here,这些对象必须为collection objects。这些包含对指定节点(“元素”)的引用,并通过查询cytoscape.js“核心对象”创建。对我来说还不清楚,因为layout
对象需要引用节点元素,并且在layout
告诉如何渲染它们之前不应该将这些元素添加到图中,如何正确设置它们收集对象?
例如,要指定将节点b
放置在节点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()
来解决这些问题。但是,传递给cy.add()
的layout
对象中发生了什么呢?
我对cytoscape()
和cytoscape.js都是陌生的,所以我很可能在这里只缺少一些非常基本的想法。一个简单的示例显示什么函数调用可以设置对象以及调用对象的顺序。在我的应用程序中,将节点和边逐渐添加到图形中,并且动画需要显示它们已被添加,因此无论如何不要在开始时就设置好所有元素。