Javascript 渲染图形后更改边标签

Javascript 渲染图形后更改边标签,javascript,cytoscape.js,Javascript,Cytoscape.js,我想在某个事件之后更改一些特定边缘的标签。 这样做的最佳方式是什么 我是否需要删除这些边,更改标签标签,然后再次将它们添加到cytoscape 最好的方法是“刷新图形” 提前谢谢 以下是编辑任何cy元素标签的简单方法: // unbind first to prevent issues with binding conflicts cy.unbind('click'); // change label of node to new text cy.bind('click', 'node',

我想在某个事件之后更改一些特定边缘的标签。 这样做的最佳方式是什么

我是否需要删除这些边,更改标签标签,然后再次将它们添加到cytoscape

最好的方法是“刷新图形”


提前谢谢

以下是编辑任何cy元素标签的简单方法:


// unbind first to prevent issues with binding conflicts
cy.unbind('click');

// change label of node to new text
cy.bind('click', 'node', function (evt) {
  var target = evt.target;
  target.data('label', 'new node label');
});

// change label of node to new text
cy.bind('click', 'edge', function (evt) {
  var target = evt.target;
  target.data('label', 'new edge label');
});
下面是一个工作演示:

var cy=(window.cy=cytoscape({
容器:document.getElementById(“cy”),
boxSelectionEnabled:false,
自动取消选择:true,
风格:[{
选择器:“节点”,
css:{
“标签”:“数据(标签)”,
“文本有效”:“中心”,
“文本halign”:“中心”,
“高度”:“60px”,
“宽度”:“60px”
}
},
{
选择器:“边缘”,
css:{
“目标箭头形状”:“三角形”
}
},
{
选择器:“边缘[标签]”,
css:{
标签:“数据(标签)”,
“文本旋转”:“自动旋转”,
“text-margin-x”:“0px”,
“text-margin-y”:“0px”
}
}
],
要素:{
节点:[{
数据:{
id:“彼得”,
标签:“彼得”
}
},
{
数据:{
身份证:“克莱尔”,
标签:“克莱尔”
}
},
{
数据:{
id:“迈克”,
标签:“迈克”
}
},
{
数据:{
身份证:“罗莎”,
标签:“罗莎”
}
}
],
边缘:[{
数据:{
资料来源:“彼得”,
目标:“克莱尔”,
标签:“边缘01”
}
},
{
数据:{
资料来源:“克莱尔”,
目标:“迈克”,
标签:“边缘02”
}
},
{
数据:{
资料来源:“迈克”,
目标:“罗莎”,
标签:“边缘03”
}
},
{
数据:{
资料来源:“Rosa”,
目标:“彼得”,
标签:“边缘04”
}
}
]
},
布局:{
名称:“圆圈”
}
}));
//这是重要的部分
cy.unbind('click');
cy.bind('click','node',函数(evt){
var目标=evt.target;
target.data('label','newnode label');
});
cy.bind('click','edge',函数(evt){
var目标=evt.target;
target.data(“标签”、“新边缘标签”);
});
正文{
字体:14px helvetica neue,helvetica,arial,无衬线;
}
#赛义德{
身高:100%;
宽度:75%;
位置:绝对位置;
左:0;
排名:0;
浮动:左;
}


到目前为止您尝试了什么?@natn2323遍历该图,以获取我要更改其边的节点(想象一个n:1关系,其中n是我遍历的节点)。接下来,我使用
.outgoers()
获得了正确的边缘。我将它们保存在一个数组中。复制了它,并更改了标签。我从
cy
中删除了它们(要删除的)。但是如果我用
cy.add(\u newEdges)
添加新的。它似乎不起作用,因为标签不是新的。