2012-07-10 4 views
0

중첩 데이터가있는 트리 데이터 구조가 있습니다.ExtJS 4.1 TreeStore의 다른 노드 유형

트리 노드 및 데이터 노드. 파일 시스템에서와 마찬가지로 TreeNodes는 폴더이고 DataNode는 파일입니다.

는하지만 JSON 구조는 다음과 같다 : 내가되는 DataNode에의 TreeNode에 어린이와 데이터 배열을 구문 분석 한 TreeStore에서 사용하려는

 
{ 
    name: 'root', 
    data: [ 
    [a, b, 100, 23], 
    [a, b, 100, 23], 
    [a, b, 100, 23] 
    ... 
    ] 
    children: [ 
    { 
     name: 'child1', 
     data: [...], 
     children: [...] 
    }, 
    { 
     name: 'child2', 
     data: [...], 
     children: [...] 
    }, 
    ... 
    ] 
} 

.

이것이 가능합니까?

ATM TreeNodes가 있고 모든 Tree 노드에는 차선책 인 데이터 레코드에 대한 연결이 있습니다.

답변

1

비슷한 상황이 있습니다. 필요한 것은 두 데이터 유형을 모두 포함하는 모델 클래스를 작성하는 것입니다 (중복 된 특성 추출). 트리 스토어에 관한 한 레코드 유형을 구별하지는 않지만 아이콘을 통해 트리 모양을 사용자 정의하여 각 레코드 유형에 별개의 모양을 부여 할 수 있습니다. 데이터는 동일해야합니다. 예를 들어 Name 속성은 두 레코드 유형 모두에서 동일해야합니다.

서버 응답의 JSON 구조가 다소 이상한 경우 사용자가 직접 구문 분석하고 treestore가 기대하는 구조를 형성해야합니다. 또는 서버 측 구현을 제어하고 거기에서 조정할 필요가 있습니다.

+0

예상대로 ... 어쨌든 고맙습니다. 'data'와'childrend'를 자식 노드로 파싱하도록 TreeStore를 어떻게 구성합니까? –

+1

정말 그것을 구성 할 수 없습니다. 데이터의 루트가 어디에 위치해야하는지 지정해야합니다. 어린이는 기본적으로 예상됩니다. 당신이 할 수있는 일은 단지 jSOn 배열을 반복하고 NodeInterface에서 확장 된 모델 인스턴스를 생성하여 자신 만의 구조를 생성하는 것입니다. – dbrin

+0

내가 바라는 대답이 아니지만 감사합니다. –