Javascript vis.js beforeAddNode处理程序

Javascript vis.js beforeAddNode处理程序,javascript,vis.js,vis.js-network,Javascript,Vis.js,Vis.js Network,我正在向网络动态添加节点和边。 在添加它们之前,我希望确保它们在数据集中不存在。 我不确定操作是否正确,我在添加节点/边时看不到console.log。 我添加了一个片段,向您展示如何做到这一点 这里有一个布尔值,您可以更改它并查看其效果 您可以运行函数来检查数据集中是否存在节点,而不是使用此布尔值 //创建一个包含节点的数组 var节点=新的vis.DataSet([ {id:1,标签:'Node 1'}, {id:2,标签:'Node 2'}, {id:3,标签:'Node 3'}, {

我正在向网络动态添加节点和边。 在添加它们之前,我希望确保它们在数据集中不存在。 我不确定
操作是否正确,我在添加节点/边时看不到console.log。


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

这里有一个布尔值,您可以更改它并查看其效果

您可以运行函数来检查数据集中是否存在节点,而不是使用此布尔值

//创建一个包含节点的数组
var节点=新的vis.DataSet([
{id:1,标签:'Node 1'},
{id:2,标签:'Node 2'},
{id:3,标签:'Node 3'},
{id:4,标签:'Node 4'},
{id:5,标签:'Node 5'}
]);
//创建具有边的阵列
var edges=new vis.DataSet([
{从:1到:3},
{从:1到:2},
{从:2到:4},
{从:2到:5}
]);
//创建网络
var container=document.getElementById('mynetwork');
风险值数据={
节点:节点,
边缘:边缘
};
变量选项={
操纵:{
启用:false,
addNode:函数(数据、回调){
console.log('add',data);
var idExist=true;//您可以将其更改为false以查看添加
if(idExist){
回调(空);
log('node exist!!!,not added');
}
否则{
回调(数据);
}
},
editNode:函数(数据、回调){
console.log('编辑',数据);
回调(数据);
},
addEdge:函数(数据、回调){
log('addedge!',data);
回调(数据);
}
}
};
var网络=新的可视网络(容器、数据、选项);
函数addNode(){
network.enableEditMode();
addNodeMode();
log('单击画布添加节点!');
}
#我的网络{
宽度:600px;
高度:400px;
边框:1px实心浅灰色;
}
p{
最大宽度:600px;
}

网络|基本用法
添加节点

谢谢!我错过了
network.enableEditMode();之前的network.addNodeMode()
,这就是为什么它不适合我
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);
        }
}