我将节点标签映射到节点“名称”属性,并且当名称更改时,我需要在 cy 画布上更新标签。我一直在使用风格
style: cytoscape.stylesheet()
.selector('node')
.css({
'color': '#000000',
'content': 'data(name)',
'text-valign': 'center',
'background-color': '#FFFFFF',
'border-width': 1,
'border-color': '#707070'
})
和一个节点
cy.add(
{ group: "nodes", data: { id: "n0", name: 'name' }, position: { x: 100, y: 100 } }
);
并更新节点
cy.$('#n0').data('name', 'newName')
使用 2.2.10,节点标签(内容)按预期在画布上更新。自从升级到 2.3.1 版后,这不再有效。任何有关如何再次实现这一目标的建议将不胜感激!
编辑 我不知道为什么这不起作用,但是对于遇到此问题的其他任何人,我暂时使用 eles.flashClass() 来非常简单地删除节点的节点标签。当临时类被移除时,会呈现正确的标签。例如
在 init 上设置的 css 样式中
.selector('node.nolabel')
.css({
'content': ''
})
然后重命名一个节点
cy.$('#n0').data('name', 'newName').flashClass('nolabel',1) //class applied for 1ms then removed
这可行,但似乎没有必要,我真的很想知道为什么
content: 'data(name)'
不工作 - 我不知道这是一个错误还是我做错了什么,只是它在 2.3.0 版以下工作