我正在尝试通过cityscape.js将节点添加到dagre图表中。问题是节点没有绘制。 这是我目前的代码:
cy.add({
group: "nodes",
data: { id:"n0",name:"n0",weight: 75 },
});
$.ajax(url).done(function(jsonTree){
var newNodes=[];
for(var i=1;i<6;i++){
//var child = jsonTree.result[i];
newNodes.push(
{ group: "nodes", data: { id: "n"+i, name:"n"+i}},
{ group: "edges", data: { id: "e"+i, source: "n0", target: "n"+i } }
);
}
cy.add(newNodes);
有什么想法吗?我已经使用加载函数来重新加载图形,但它不起作用。我不知道是否必须使用特定功能来重新加载图形。
提前谢谢。
答案 0 :(得分:2)
您需要为新节点添加位置。来自cytoscape.js docs:
重要的是要注意新添加的节点的位置必须 在调用cy.add()时定义。节点不能放在图表中 没有有效位置 - 否则无法显示。
你想要for
循环这样的东西:
var newNodes=[];
for(var i=1;i<6;i++){
newNodes.push(
{ group: "nodes",
data: {
id: "n"+i,
name:"n"+i
},
//this is the bit you missed: position
position: {
x:25*i,
y:20*i
}
},
{ group: "edges",
data: {
id: "e"+i,
source: "testnode",
target: "n"+i
}
}
);
}
cy.add(newNodes);
Here's a JSBin showing a graph with new nodes added dynamically