您如何将节点传递到cytoscape-cola.js中的gapInequalities?

gapInequalities字典中layout元素的cytoscape.js-cola documentation说:

  gapInequalities: undefined,// list of inequality constraints for the gap between the nodes,// e.g. [{"axis":"y","left":node1,"right":node2,"gap":25}]

如何设置在leftright的值中指定节点的对象?

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()来解决这些问题。但是传递给layout的{​​{1}}对象中有什么呢?

我对cytoscape.jscola.js都是陌生的,因此我很可能在这里只是缺少一些非常基本的想法。一个简单的示例显示什么函数调用可以设置对象以及调用对象的顺序。在我的应用程序中,将节点和边逐渐添加到图形中,并且动画需要显示它们已被添加,因此无论如何不要一开始就设置好所有元素。

A19900919woaijisuanj 回答:您如何将节点传递到cytoscape-cola.js中的gapInequalities?

由于逐渐添加了节点和边,因此可以创建不包含元素和布局对象的cy对象。然后,当新节点出现时,您可以将它们添加到图形中并应用布局。

cy对象初始化之后,每次有新节点出现时,请应用以下内容:

cy.add(...);
cy.layout({
  name: 'cola',gapInequalities: [{ axis: 'y',left: cy.$id("a"),right: cy.$id("b"),gap: 25 }],...
}).run();
本文链接:https://www.f2er.com/3056751.html

大家都在问