我操纵节点和边后图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]);
});
如何检索边缘的价值?
像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));
});
与此相反的答案,说明您的边缘应该有明确的id是容易找到,他们只是没有。
您应该只使用DataSet
的get
方法来找到它的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;
}
});