我有一个问题,尽管包括'标题'我的节点对象中的属性,当我将鼠标悬停在某个节点上时,不会显示带有我标题内容的弹出窗口。
以下是我的选项以及如何设置网络。
setUpNetwork(){
let container = document.getElementById('mynetwork');
//These options dictate the dynamic of the network
let options = {
nodes: {
shape: 'box'
},
interaction: {
dragNodes: false,
dragView: false,
hover: true
},
layout: {
randomSeed: undefined,
improvedLayout: true,
hierarchical: {
enabled: true,
levelSeparation: 180,
nodeSpacing: 180,
edgeMinimization: true,
parentCentralization: true,
direction: 'UD', // UD, DU, LR, RL
sortMethod: 'directed' // hubsize, directed
}
},
physics: {
enabled: false
}
}
// initialize your network!
this.network = new vis.Network(container, this.data, options);
}
当我将节点添加到我的网络节点列表中时,这是我的结构:
addNode(node: any){
try {
this.data.nodes.add({
id: node.id,
color: node.color,
title: node.title,
label: node.label
});
this.network.fit();
}
catch (err) {}
}
我运行代码的环境使得很难提供此问题的示例。当我将鼠标悬停在节点上时,网络中的其他所有内容都可以正常工作(标签,内容,颜色),而不是标题。
修改:
我从this example复制了弹出窗口工作的vis.js中的代码。
// create an array with nodes
var nodes = new vis.DataSet([
{id: 1, label: 'Node 1', title: 'I have a popup!'},
{id: 2, label: 'Node 2', title: 'I have a popup!'},
{id: 3, label: 'Node 3', title: 'I have a popup!'},
{id: 4, label: 'Node 4', title: 'I have a popup!'},
{id: 5, label: 'Node 5', title: 'I have a popup!'}
]);
// create an array with edges
var edges = new vis.DataSet([
{from: 1, to: 3},
{from: 1, to: 2},
{from: 2, to: 4},
{from: 2, to: 5}
]);
// create a network
var container = document.getElementById('mynetwork');
var data = {
nodes: nodes,
edges: edges
};
var options = {interaction:{hover:true}};
this.network = new vis.Network(container, data, options);
我在我的环境中尝试过只使用它;然而,弹出窗口不会像示例中那样出现。我知道我的悬停事件有效,因为当我将鼠标悬停在节点上时,我将此代码包含在打印到控制台中:
this.network.on("showPopup", function (params) {
console.log("DO SOMETHING");
})
我在这里缺少一些选项吗?可能还有一些其他问题,为什么我的悬停弹出窗口不显示尽管包括"标题"我的节点对象中的属性?
答案 0 :(得分:2)
因为您正在使用事件(" showPopup"),所以没有显示任何内容。你必须使用on(" hoverNode")。所以使用
network.on("hoverNode", function(){
// functionality for popup to show on mouseover
});
network.on("blurNode", function(){
// functionality for popup to hide on mouseout
});
添加节点最好使用
nodes.add()
答案 1 :(得分:2)
我有同样的问题。就我而言,这是一个CSS问题。确保正确导入vis.min.css。我在链接声明中有错字。
答案 2 :(得分:0)
发生这种情况是因为您可能没有导入 vis-network CSS。 您可以导入独立版本的 vis-network,它会自动导入 CSS。
import { Network } from 'vis-network/standalone';