vis.js网络操作:将节点标签拆分到不同的行上

时间:2017-07-05 05:20:56

标签: vis.js vis.js-network

我使用vis.4.18.1。
我有一个交互式图表,可以使用addNode()editNode()点击地图来添加或编辑节点。
如何在多行上设置节点标签?
我正在使用弹出窗口收集标签数据 我知道在使用换行创建地图时导入初始图表数据时可以完成此操作,但这不能以交互方式工作,节点标签如下所示:
'约翰史密斯\ n出生日期'。
我也尝试将节点字体设置为多个并使用html br但这也不起作用。

1 个答案:

答案 0 :(得分:2)

您是否尝试过以下方面的内容:

node.username = "John Smith";
node.dateOfBirth = "Jun 18th 1978";
node.label = node.username + "\n" + node.dateOfBirth;

您可以通过visJS节点/ dataSet固有的属性扩展节点对象。也许这样你可以解决你的问题。

编辑:我刚刚测试了这个示例,其中node.label = node.title在初始渲染时,并在选择节点时展开。

function expandNode(selectedNode){
  selectedNode.label = selectedNode.title + '\n' + 'a' + '\n' + 'b' + '\n' + selectedNode.problem;
  nodesObj.update(selectedNode); 
}

network.on('select', function(selection){
  let selectedNodes = nodesObj.get(selection.nodes); // nodesObj is a visjs dataSet
  if(selection.nodes.length === 1){
    expandNode(selectedNodes[0]);
  }
}

Collapsed Node Expanded Node

倒塌&扩展节点