Sans une explication claire dans votre question de ce que vous avez actuellement et ce que vous voulez vraiment, je vais prendre une photo.
Il semble que vous souhaitiez remplir une arborescence, mais que vous n'obteniez que des nœuds de niveau supérieur. C'est logique, car vous appelez toujours root.appendChild
, donc les choses sont toujours ajoutées au nœud racine.
Je suis confus par votre exemple d'appel récursif root.appendChild(nest(item.data))
. Votre fonction nest
ne renvoie rien, donc le passer en argument à appendChild
ne fait rien d'utile.
Vous devriez probablement concevoir votre fonction pour accepter comme arguments le nœud de base actuel (auquel vous ajouterez le prochain niveau de nœuds enfants) et la collection de choses qui seront représentées par ces nœuds. En fonction de votre structure de données, ce serait quelque chose comme:
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);
}
}
Si vous avez une structure de données bien formé que vous voulez charger dans un arbre Ext, cependant, vous devriez juste être en mesure de charger votre structure d'arbre dans un magasin correctement configuré et que votre arbre fonctionne comme par magie. Si vous nous montrez votre structure de données, vous pourriez obtenir de l'aide.
Pouvez-vous poster un jsfiddle qui inclut votre ensemble de données et les démos cela? –