如何检索vis.js边缘值/标签?

问题描述 投票:0回答:2

我操纵节点和边后图generated.I想检索边缘双击时的边缘值或标题。

nodes = [{id: 'TEST1',  value: 0, label: 'TEST1', title: TEST1'},
         {id: 'engine',  value: 0, label: 'engine', title: 'engine'}];

  // create connections between people
  // value corresponds with the amount of contact between two people
   edges = [{from: 'TEST1', to: 'engine', value: 4, title: '4 Connections'},];

我可以与下面的代码节点双击过程中得到节点的值。

network.on( 'doubleClick', function(properties) {
         alert('clicked node ' + properties.nodes[0]);
});

如何检索边缘的价值?

javascript vis.js
2个回答
0
投票

doubleClick事件为您提供边缘的id的列表。如果您的边缘没有一个ID,网络产生一个对他们内部,但你不能在你的原始数据匹配。

最好是在DataSet来创建自己的数据,并给边缘的标识:

var nodes = new vis.DataSet([
  {id: 'TEST1',  value: 0, label: 'TEST1', title: 'TEST1'},
  {id: 'engine',  value: 0, label: 'engine', title: 'engine'}
]);

var edges = new vis.DataSet([
  {id: 1, from: 'TEST1', to: 'engine', value: 4, title: '4 Connections'}
]);

network.on( 'doubleClick', function(properties) {
  var nodeIds = properties.nodes;
  console.log('node ids:', nodeIds);
  console.log('nodes:', nodes.get(nodeIds));

  var edgeIds = properties.edges;
  console.log('edge ids:', edgeIds);
  console.log('edges:', edges.get(edgeIds));
});

0
投票

与此相反的答案,说明您的边缘应该有明确的id是容易找到,他们只是没有。

您应该只使用DataSetget方法来找到它的ID的元素,它适用于内部的ID,太。

network.on( 'doubleClick', function(properties) {

     // selected edge id
     var edgeId = properties.edges[0];

     // find corresponding edge
     var edge = edges.get( edgeId );

     if ( edge ) {

        // found one!
        var from = edge.from;
        var   to = edge.to;

     }
});
© www.soinside.com 2019 - 2024. All rights reserved.