如何使用 Visjs 获取可见节点
How to get visible nodes with Visjs
我用 vis-network
创建了这个大型网络:
单击节点时,我创建了集群。例如,如果我点击 2 个绿色框,结果是:
在这个新视图中,我有两个常规节点("Program #3289" 和 "Task #7300")和两个包含其子节点的集群("Project #3415" 和 "Project #3416")。
如果我使用 dataset.get()
它 returns 我所有的 106 个初始节点。
如果我使用 network.body.nodes
它 returns 我所有的 106 个初始节点 + 我的两个集群。
我想要的:一种只获取网络中可见节点的方法。在那种情况下,我应该只得到 2 个常规节点和 2 个集群。
我是不是错过了允许这样做的功能?
谢谢
我终于想到了以下解决方案:
var visibleNodes = [];
for (var nodeId in visNetwork.body.nodes) {
// we check if the node is inside a cluster
if (!visNetwork.clustering.clusteredNodes[nodeId]) {
visibleNodes.push(nodeId)
}
}
我用 vis-network
创建了这个大型网络:
单击节点时,我创建了集群。例如,如果我点击 2 个绿色框,结果是:
在这个新视图中,我有两个常规节点("Program #3289" 和 "Task #7300")和两个包含其子节点的集群("Project #3415" 和 "Project #3416")。
如果我使用 dataset.get()
它 returns 我所有的 106 个初始节点。
如果我使用 network.body.nodes
它 returns 我所有的 106 个初始节点 + 我的两个集群。
我想要的:一种只获取网络中可见节点的方法。在那种情况下,我应该只得到 2 个常规节点和 2 个集群。
我是不是错过了允许这样做的功能?
谢谢
我终于想到了以下解决方案:
var visibleNodes = [];
for (var nodeId in visNetwork.body.nodes) {
// we check if the node is inside a cluster
if (!visNetwork.clustering.clusteredNodes[nodeId]) {
visibleNodes.push(nodeId)
}
}