2017-12-10 9 views
1

내 Webix 응용 프로그램에서 일부 노드와 리프 노드가있는 트리가 있습니다. 추가 노드 나 리프 노드가 기본 분기 나 하위 분기에 추가되면 외부 .js 파일에서 트리의 해당 부분을 자동으로 새로 고칩니다 (노드를 확장하여). https://webix.com/snippet/2caca842트리에 요소가 추가 될 때 자동으로 Webix 트리 노드를 확장하는 방법

내가 확장 함수를 작성하는 방법의 모든 예제는 도움이 될 것입니다 :

나는 여기에 조각이있다.

감사합니다.

+0

treeObject가 var treeObj라고 가정하면 treeObj._htmlmap을 수행하여 트리의 모든 ID를 가져옵니다. 또한 treeObj._viewobj.textContent로 각 노드의 모든 텍스트 이름을 얻습니다. treeObj에서 노드 이름과 해당 ID를 매핑하는 방법이 있습니까? 감사. –

답변

1

문제 설명이 정확히 무엇인지 모르겠다.하지만 노드의 전체 정보, 부모와의 매핑, 부모 ID 등 ... instance.data.pull을 사용하면 모든 행과 열에 대한 완전한 정보. 여기서 instance은 {tree, datatable, treetable, 당신이 사용하는 webix의 모든 구성 요소}의 인스턴스입니다.

당신이 onBeforeOpen 이벤트 내부 this.data.pull을 할 수 root 부모 요소가됩니다

1: {id: "1", open: false, value: "Chicago", $parent: "root", $level: 2, …} 
1.1: {id: "1.1", value: "Houston", $parent: "1", $level: 3, $count: 0} 
1.2: {id: "1.2", value: "San Diego", $parent: "1", $level: 3, $count: 0} 
2: {id: "2", value: "States", open: true, $parent: "root", $level: 2, …} 
2.1: {id: "2.1", value: "California", $parent: "2", $level: 3, $count: 0} 
2.2: {id: "2.2", value: "Florida", $parent: "2", $level: 3, $count: 0} 
root: {id: "root", value: "Cities", open: true, $parent: 0, $level: 1, …} 

, $level이 요소가 존재하는 수준에서 표현대로 결과를 얻을 것이다, open 현재 요소가 열려 있는지 여부를 나타냅니다 또는 닫습니다.

+0

제공하신 것이 정말 도움이됩니다. 이것에서 나는 '휴스턴'의 이드가 1.1이라는 것을 압니다. 휴스턴에도 리프 노드가 있다고 가정하고, 리프 노드 하나를 'abcd'로 추가했습니다. 이제 휴스턴 노드를 새로 고침/확장 할 때 추가 한 후 확장되지만 '휴스턴'아래의 기존 노드가 다시 생성됩니다. 그래서 나는 '휴스턴'아래에서 모든 잎 노드를 두 번 얻는다. 다른 모든 노드에 대해서도 동일한 문제가 발생합니다. 새로 추가/삭제 된 트리/노드를 새로 고침으로써 도움이된다면 도움이 될 것입니다. 작은 삽화일지도 모릅니다. –

+0

한 번만 만들면 노드를 두 번 자동으로 만들 수있는 방법이 없습니다. 코드 스 니펫을 더 자세히 설명해 주시겠습니까? –

+0

좀 더 자세히 설명 할 수 있도록 언젠가는 내게주세요. 감사합니다 –