gpt4 book ai didi

javascript - vis.js beforeAddNode 处理程序

转载 作者:行者123 更新时间:2023-12-03 03:55:57 25 4
gpt4 key购买 nike

我正在向我的网络动态添加节点和边。在添加它们之前,我想确保它们尚未出现在数据集中。我不确定操作是这样,当我添加节点/边时我看不到console.logs。 http://visjs.org/docs/network/manipulation.html

manipulation: {
enabled: false,
addNode: function (data, callback) {
console.log('add', data);
callback(data);
},
editNode: function (data, callback) {
console.log('edit', data);
callback(data);
},
addEdge: function (data, callback) {
console.log('add edge!', data);
callback(data);
}
}

最佳答案

我添加了一个片段来向您展示如何做到这一点。

那里有一个 bool 值,您可以更改并查看效果。

您可以运行函数来检查节点是否存在于数据集中,而不是此 bool 值。

// create an array with nodes
var nodes = new vis.DataSet([
{id: 1, label: 'Node 1'},
{id: 2, label: 'Node 2'},
{id: 3, label: 'Node 3'},
{id: 4, label: 'Node 4'},
{id: 5, label: 'Node 5'}
]);

// 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 = {
manipulation: {
enabled: false,
addNode: function (data, callback) {
console.log('add', data);
var idExist = true; // you can change it to false to see addition
if(idExist){
callback(null);
console.log('node exist!!!, not added');
}
else{
callback(data);
}
},
editNode: function (data, callback) {
console.log('edit', data);
callback(data);
},
addEdge: function (data, callback) {
console.log('add edge!', data);
callback(data);
}
}
};
var network = new vis.Network(container, data, options);

function addNode(){
network.enableEditMode();
network.addNodeMode();
console.log('click on canvas to add node!');
}

#mynetwork {
width: 600px;
height: 400px;
border: 1px solid lightgray;
}

p {
max-width: 600px;
}
<!doctype html>
<html>
<head>
<title>Network | Basic usage</title>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/vis/4.20.0/vis.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/vis/4.20.0/vis.min.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<button onclick="addNode()"> add node</button>
<div id="mynetwork"></div>



</body>
</html>

关于javascript - vis.js beforeAddNode 处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44949194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com