2014-04-01 2 views
0

두 레벨의 노드를 보여주는 방사형 그래프가 있습니다. 노드를 클릭하면 sum() 함수를 호출하여 하위 그래프를 추가 할 수 있습니다. 새로 추가 된 가장자리에 개별 색상을 설정하는 것 외에는 모두 잘 작동합니다. 누구나 개별 가장자리 색을 사용하여 하위 그래프를로드하려고 시도 했습니까, 아니면 잘못했는지 힌트가있는 사람이 있습니까? 여기하위 그래프 개별 가장자리 색상을 추가하는 JIT

나는 점점 서브 그래프를 추가 해요 :

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": "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" 
     } 
    }] 
}] 
} 

답변

1

는 마침내 틀에 문제 발견 자체 ...

실제로 하위 트리를 추가하는 construct 함수를 호출하면 인접성의 개별 시각화에 대한 정보를 포함하는 데이터 객체는 새 인접성을 추가하는 데 사용되지 않습니다. 따라서 코드를 수동으로 변경했습니다.이 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 

} 
관련 문제