小编dbe*_*ean的帖子

cytoscape.js中的动态节点内容(标签)

我将节点标签映射到节点“名称”属性,并且当名称更改时,我需要标签在cy画布上进行更新。我一直在用这种风格

style: cytoscape.stylesheet()
.selector('node')
  .css({
    'color': '#000000',
    'content': 'data(name)',
    'text-valign': 'center',
    'background-color': '#FFFFFF',
    'border-width': 1,
    'border-color': '#707070'
  })
Run Code Online (Sandbox Code Playgroud)

和一个节点

cy.add(
    { group: "nodes", data: { id: "n0", name: 'name' }, position: { x: 100, y: 100 } }
);
Run Code Online (Sandbox Code Playgroud)

并使用更新节点

cy.$('#n0').data('name', 'newName')
Run Code Online (Sandbox Code Playgroud)

使用2.2.10,节点标签(内容)将按预期在画布上更新。由于升级到版本2.3.1,因此不再起作用。任何有关如何再次实现这一目标的建议将不胜感激!

编辑 我不知道为什么不行,但是对于其他有此问题的人,暂时我正在使用eles.flashClass()来非常短暂地删除该节点的节点标签。删除临时类后,将呈现正确的标签。例如

在init上设置的css样式

.selector('node.nolabel')
    .css({
        'content': ''
})
Run Code Online (Sandbox Code Playgroud)

然后重命名节点

cy.$('#n0').data('name', 'newName').flashClass('nolabel',1) //class applied for 1ms then removed
Run Code Online (Sandbox Code Playgroud)

这有效,但似乎没有必要,我真的很想知道为什么

content: 'data(name)'
Run Code Online (Sandbox Code Playgroud)

无法正常工作-我不知道这是一个错误还是做错了,只是它在版本2.3.0以下才有效

javascript cytoscape-web cytoscape.js

5
推荐指数
1
解决办法
5349
查看次数

标签 统计

cytoscape-web ×1

cytoscape.js ×1

javascript ×1