2011-07-26 5 views
0

자바 스크립트로 트리를 디자인 중이며 서버에있는 json 파일에 저장된 노드를로드하려고합니다.동적으로 json을 사용하여 트리로드하기

의사 코드 자바 스크립트 :

var nodeRoot = 
{ 
    level: 4, 
    id: 12, 
    data: ..., 
    childs: Array() // the nodes, all similar to the root, but of level n-1 
} 

function downloadNodeData(_node){ 
    //initializing the request 
    req.onreadystatechange= 
     function(){ 
      //testing the request 
      var nodeResult = eval("("+req.responseText+")"); 
      console.log(nodeResult); 
      // ----- What now ? ----- 
     } 
    req.send(null); 
} 

나는 여러 장소에서이 기능을 (아이디어는 사용자 작업의 따라 동적으로 트리 노드를로드하는 것입니다)를 호출 할 수 있습니다.

요점은 요청이 반환되면 호출 된 노드의 값을 업데이트 할 방법을 찾을 수 없다는 것입니다.

SetNodeByLevelAndId (_node, _level, _value)를 만드는 유일한 방법은 무엇입니까?

도움 주셔서 감사합니다.

답변

0

nodeRoot의 설명에는 속성 값이 없습니다. _node (함수에 지정된 매개 변수)에서 무엇을 업데이트 하시겠습니까?

nodeResult로 _node를 바꾸려면 nodeResult 속성을 하나씩 _node에 복사해야합니다. 할당 된 경우 _ 노드를 참조하는 다른 노드는 이전 참조를 사용하므로

_node = nodeResult 
+0

나는 이해할 수 없습니다. 필자는 함수에 주어진 노드를 업데이트하려고합니다 (더 정확하게는 필드 데이터와 하위 노드). _node.data = nodeResult.data를 수행하면 원래 노드 (함수에 전달됨)의 필드 데이터가 업데이트됩니다. –

+0

예, 속성을 하나씩 바꾸는 것이 효과적입니다. JavaScript에 익숙해 져야합니다. 감사 ! –

관련 문제