Кажется, что есть несколько проблем с вашими данными json.
1: Если вы укажете «nodeFrom» и «nodeTo» в смежности в ваших json-данных, тогда infovis создаст эти смежности. В идеальном случае вы не должны иметь такие смежности в своих json-данных.
2: Кроме того, nodeTo и nodeFrom в смежных точках указывают на идентификаторы узлов, на которые вы хотите ссылаться, и идентификаторы должны быть уникальными. Из ваших данных кажется, что «missingChildId» и «parentId» не уникальны. Вы уверены, что это уникальные идентификаторы?
Я думаю, вы должны убедиться, что каждый узел имеет уникальный идентификатор и использует их в смежных областях.
Если вы не можете исправить свой json для 1-й проблемы, тогда одна работа вокруг - это скрыть те узлы с идентификатором «missingChildId».
Итак, после отображения графика вы можете использовать следующий код, чтобы скрыть узлы с идентификатором «missingChildId».
rg.graph.eachNode(function(node){
if(node.id == "missingChildId")
node.setData("alpha",0,"end");
});
rg.graph.animate({
modes: ['node-property:alpha'],
duration: 500
});
Аналогично каждый раз, когда вы перебирать узлы/примыкания графа вы должны отфильтровать все такие нежелательные узлы, используя их идентификатор. Вы также можете настроить свое настраиваемое свойство на нежелательных узлах.
node.setData("ignore",true);
А затем отфильтруйте их, используя это свойство.
«Аналогично каждый раз, когда вы перебираете узлы/смежности графика, вам придется отфильтровывать все такие нежелательные узлы, используя их идентификатор». Это то, что я сделал. Спасибо. –