Я пытаюсь создать сеть на VISJS.Однако всякий раз, когда я добираюсь до
else if (version.slice(-7).toUpperCase() == 'DEFAULT')
, я получаю сообщение о том, что идентификатор уже существует.Как вы можете видеть из кода, я назначил идентификатор равным итерации цикла for.Проблема начинается с итерации / идентификатора 10. Я установил точку останова в коде, чтобы проверить узлы и значения, и, как вы можете видеть на изображении, объект узла фактически не содержит узла с идентификатором 10. Я не могупохоже выяснить в чем тут проблемаУ кого-нибудь есть предложения?
Изображение точки останова
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Geoinfo SDE StateTree</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/vis/4.21.0/vis.min.css" type="text/css" />
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/PapaParse/4.4.0/papaparse.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/vis/4.21.0/vis.min.js"></script>
<script type="text/javascript">
Papa.parse("WIL_sde_states_fejl.txt", {
download: true,
complete: function(results) {
var tree = results.data;
var nodes = new vis.DataSet();
var edges = new vis.DataSet();
var levels = [];
var state, parent, version, lineage;
for (i = 1; i < tree.length; i++) {
id = String(i)
state = tree[i][0];
parent = tree[i][1];
version = tree[i][2];
lineage = tree[i][3];
if (version.toUpperCase() === '') {
if (state != parent) {
nodes.add([{
id: id,
lid: lineage,
label: state
}]);
edges.add([{
from: id,
to: parent
}]);
} else {
nodes.add([{
id: id,
lid: lineage,
label: state,
color: '#0000FF'
}]);
}
}else if (version.slice(-7).toUpperCase() == 'DEFAULT') {
nodes.add([{
id: id,
lid: lineage,
label: state
}, {
id: id, //state.concat('v')
lid: lineage,
label: version,
color: '#ff0000'
}]);
edges.add([{
from: id,
to: parent
}, {
from: id,//state.concat('v'),
to: state,
arrows: {
to: {
enabled: true
},
from: {
enabled: false
}
}
}]);
}else if (version.slice(0, 5).toUpperCase() == 'SYNC_') {
nodes.add([{
id: id,
lid: lineage,
label: state
}, {
id: id, //state.concat('v'),
lid: lineage,
label: version,
color: '#ff6600'
}]);
edges.add([{
from: state,
to: parent
}, {
from: id,//state.concat('v'),
to: state,
arrows: {
to: {
enabled: true
},
from: {
enabled: false
}
}
}]);
}else {
nodes.add([{
id: id,
lid: lineage,
label: state
}, {
id: id,//state.concat('v')
lid: lineage,
label: version,
color: '#ffcc00'
}]);
edges.add([{
from: id,
to: parent
}, {
from: id, //state.concat('v'),
to: state,
arrows: {
to: {
enabled: true
},
from: {
enabled: false
}
}
}]);
}
}
// create a network
var container = document.getElementById('mynetwork');
var data = {
nodes: nodes,
edges: edges
};
var options = {
layout: {
hierarchical: {
enabled: true
}
},
nodes: {
shape: 'dot',
size: 20,
borderWidth: 0.5,
color: {
border: '000000',
background: '#77d14a'
},
font: {
background: '#FFFFFF'
}
},
edges: {
width: 0.5,
color: '000000',
arrows: 'from'
},
physics: {
stabilization: false
}
};
var network = new vis.Network(container, data, options);
}
});
</script>
<style>
#mynetwork {
width: 98%;
height: 98%;
border: 1px solid lightgray;
}
</style>
</head>
<body>
<div id="mynetwork"></div>
</body>
</html>