我有一个显示两级节点的径向图。单击节点时,可以通过调用sum()函数添加子图。除了为新添加的边设置单独的颜色外,一切正常。 有没有人试图加载具有单独边缘颜色的子图或者暗示我做错了什么?
我在这里得到并添加子图:
subtree = getSubtree(node.id);
//perform animation.
subtree.success(function(data){
rg.op.sum(data, {
type: 'fade:seq',
fps: 40,
duration: 1000,
hideLabels: false,
});
});
我也检查了加载的数据但对我来说似乎完全相同。我还将相同的数据加载到初始图形而不是子图形中,然后将其颜色正确。然而,这里有一些测试数据,它是函数getSubtree的结果(id“占位符”匹配应该添加子图的现有id):
{
"id": "placeholder1",
"name": "country",
"children": [{
"id": "2_3mSV~_scat_1",
"name": "hyponym",
"children": [{
"children": [],
"adjacencies": {
"nodeTo": "2_3mSV~_scat_1",
"data": {
"$color": "#29A22D"
}
},
"data": {
"$color": "#29A22D"
},
"id": "3_58z3q_sc_174_6",
"name": "location"
}],
"data": {
"$type": "star",
"$color": "#666666"
},
"adjacencies": [{
"nodeTo": "3_58z3q_sc_174_6",
"data": {
"$color": "#29A22D"
}
}]
}]
}
答案 0 :(得分:1)
我终于在框架中找到了问题......
当调用sum()调用中的构造函数实际添加子树时,包含有关邻接的单个可视化的信息的数据对象不用于添加新的邻接。因此我手动更改了代码(这个for循环是construct()函数中现有for循环的新版本):
for(var i=0, ch = json.children; i<ch.length; i++) {
//CUSTOM CODE: GET DATA OF THIS ADJACENCE
data = null;
if(ch[i].adjacencies[0]==undefined){
data = ch[i].adjacencies.data;
}
else{
data = ch[i].adjacencies.data;
}
ans.addAdjacence(json, ch[i], data);
arguments.callee(ans, ch[i]);
//CUSTOM CODE END
}