あなたが現在持っているものとあなたが本当に欲しいものについてのあなたの質問に明確な説明がなければ、私は撃ちます.
いくつかのツリー構造を設定したいようですが、トップレベルのノードしか取得していないようです。常に を呼び出しているため、これは理にかなっています。root.appendChild
そのため、常にルート ノードに追加されます。
あなたの例 recursive call に混乱していますroot.appendChild(nest(item.data))
。あなたのnest
関数は何も返さないので、引数として渡しappendChild
ても何も役に立ちません。
おそらく、現在のベース ノード (次のレベルの子ノードを追加するノード) と、それらのノードによって表されるもののコレクションの両方を引数として受け入れるように関数を設計する必要があります。データ構造に応じて、これは次のようになります。
function nest(base, items) {
for (var i=0; i<items.length; i++) {
var item = items[i];
var new_child = base.appendChild(item.data);
nest(new_child, item.children);
}
}
ただし、Ext ツリーにロードしたい整形式のデータ構造がある場合は、ツリー構造を適切に構成されたストアにロードするだけで、ツリーが魔法のように機能するはずです。データ構造を見せていただければ、助けになるかもしれません。