Cytoscape.js 从 dagre 布局获取节点位置

Cytoscape.js get node position from dagre layout

为了使之字形像边缘一样,我需要进行一些计算,为此我需要每个节点在布局上的位置,但我在实现这一点时遇到了一些困难。

我正在尝试通过这种方式获取节点的位置:

cy.$('#1891').position()

但无论我使用哪个 id,我总是得到 {x: 0, y: 0} 个值。

当我添加这样的事件时:

cy.on('mouseover', 'node', function(evt){
    var node = evt.target;
    console.log(node.position());
});

我得到每个节点的位置。

dagre 布局中获取每个节点位置的正确方法是什么?

我找到了解决方案。

这是我犯的一个愚蠢的错误。我试图在应用布局之前获取节点的位置。将 cy.$('#1891').position(); 放在 layout.run(); 之后就可以了。