我目前正在尝试将我的Cytoscape.js图导出为json,以便以后将其导入Cytoscape应用程序中。对于某些节点,我需要在布局过程之后添加一个复合节点,因此它们不包括在布局过程中,并且不影响节点位置。
布局后,我通过cy.add()添加父节点,并通过ele.move()将子节点添加到父节点。
当我调试节点时,会设置属性autoHeight和autoWidth,但在读取它们时会导致未定义,并且不会根据其子节点设置位置。
var json = cy.json();
var jsonNodes = json.elements.nodes;
var graphNodes = cy.nodes(':parent');
jsonNodes.forEach(jsonNode => {
graphNodes.forEach(graphNode => {
if (jsonNode.data['id'] == graphNode._private.data['id']){
if(graphNode._private['autoHeight'] != undefined) {
let height = graphNode._private['autoHeight'];
let width = graphNode._private['autoWidth'];
jsonNode.data['height'] = height;
jsonNode.data['width'] = width;
jsonNode.data['opacity'] = 70;
}
}
}
)
});
我希望json包含父级的宽度,高度和位置(根据其子节点的位置)。