JSTree에 대한 초기 데이터를로드하려고 할 때 문제가 있습니다. 루트 노드에 연결된 2 최상위 노드가 있지만로드 할 때 추가 된 마지막 노드가 JSTree 내에서 중복되는 것처럼 보입니다. 처음에는 매번 새로운 객체를 명시하지 않는 것이 내 잘못이라고 보았지만 해결했습니다. NET MVC 그래서 초기 데이터를 내보기 (즉 메서드의 데이터 매개 변수로 전달 된 데이터) 전달되는 모델에서 오는 사용하고 있습니다.create_node로 데이터를로드 할 때 JSTree가 중복 노드를 생성합니다.
this.loadInitialData = function (data) {
var tree = self.getTree();
for (var i = 0; i < data.length; i++) {
var node = new Object();
node.id = data[i].Id;
node.parent = data[i].Parent;
node.text = data[i].Text;
node.state = {
opened: data[i].State.Opened,
disabled: data[i].State.Disabled,
selected: data[i].State.Selected
};
node.li_attr = { "node-type": data[i].NodeType };
node.children = [];
for (var j = 0; j < data[i].Children.length; j++) {
var childNode = new Object();
childNode.id = data[i].Children[j].Id;
childNode.parent = data[i].Children[j].Parent;
childNode.text = data[i].Children[j].Text;
childNode.li_attr = { "node-type": data[i].Children[j].NodeType };
childNode.children = data[i].Children[j].HasChildren;
node.children.push(childNode);
}
tree.create_node("#", node, "last");
}
}
내 초기 코드는 다음과 같이 노드를 선언했다 :
var node = {
id: data[i].Id
}
나는 그게 내가보고하지만 아무것도 변경되지 않은 고정하고있는 무슨의 원인라고 생각 했어요. 다음은 애플리케이션을 실행할 때 일어나는 일입니다. 메서드의 첫 번째 패스에서 모든 것이 제대로 작동하는 것처럼 보입니다.
그러나 루프가 두 번째 (마지막) 시간 동안 실행 한 후 여기에 최종 결과입니다
.노드 객체가 서로의 단지 사본입니다 것 같습니다,하지만 난 디버거를 통해 코드를 실행할 때 나는 개체마다 초기화되고 참조하십시오. 누구든지 JSTree에서이 동작을 일으키는 아이디어가 있습니까? create_node 이외의 초기 노드를 만드는 데 다른 방법을 사용해야합니까?
미리 감사드립니다.
한 페이지에서 다른 페이지로 트리를 복사 할 때 문제가 있으므로 답변을 설명해주십시오. ( –