2013-07-24 1 views
0

Dans la fonction suivante, je ne reçois que les objets parents et non leurs enfants (ou petits-enfants) comme prévu:Peupler TreeView de dos, ne reçoivent pas les enfants

function nest(n) 
{ 
    for(var i=0;i<n.attributes.length;i++){ 
     var item = n.attributes[i]; 
     root.appendChild(item.data); 
    } 
} 

nest(me); 

Si je récursion comme root.appendChild(nest(item.data)); je reçois les enfants et petits-enfants , mais pas les parents.

Comment puis-je avoir des parents et des enfants?

+1

Pouvez-vous poster un jsfiddle qui inclut votre ensemble de données et les démos cela? –

Répondre

1

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.

+0

merci, cela a fonctionné)) – otarb

Questions connexes