Gewusst wie: löschen eines Knotens aus einem Extern TreePanel, wenn der Knoten noch nicht erbracht

Habe ich gefunden, die kann ich nicht löschen Knoten, die noch nicht gerendert wurde noch. Der folgende code zeigt was ich meine. Ich habe es aus dem Chrome und Firebug ist) Befehl Linie, während auf http://dev.sencha.com/deploy/dev/exa...dow/hello.html (da die Seite extern vorgespannt)

Ich tippte jede Anweisung separat, um sicherzustellen, gab es keine Probleme mit asynchronen Operationen (auch wenn die Struktur der Daten im Speicher)

Ext.getBody.update('');
//Tree with preloaded nodes in memory 
var tree = new Ext.tree.TreePanel({ 
   renderTo: Ext.getBody(),  
   width: 300,  
   height: 500,  
   rootVisible: false, 
   loader: new Ext.tree.TreeLoader({preloadChildren:true}), 
   root: new Ext.tree.AsyncTreeNode({ 
     expandend: true, 
     children: [ 
        {text: 'Folder 1', id: 'folder1', leaf: false, children: [ 
            {text: 'File 1', id: 'file1', leaf: true}, 
            {text: 'File 2', id: 'file2', leaf: true} 
        ]} 
     ] 
   }) 
}); 

//Try to delete 'File 1', notice that the folder has never been expanded 
tree.getRootNode().childNodes[0].childNodes[0].remove(true); 

//Expand the node and see that 'File 1' is still there 
tree.getRootNode().childNodes[0].expand(); 

//Delete the first child 1 again, it works now that it's been rendered 
tree.getRootNode().childNodes[0].childNodes[0].remove(true);

Irgendwelche Vorschläge, was zu tun ist?

ANTWORT

var nodeToRemove = tree.getRootNode().childNodes[0].childNodes[0];
if (!nodeToRemove.rendered) {
    var children = node.parentNode.attributes.children;
    Ext.each(children, function(child, index){
        if (child.id == nodeToRemove.id) {
            chilren.splice(index, 1);
            return false;
        }
    }) ;
} else {
    nodeToRemove.remove(true);
}
Warum gehören die Knoten, wenn Sie wollen, um Sie zu löschen irgendwie?
Dies ist offensichtlich nicht der eigentliche code, der verwendet wird, es ist nur eine Reduzierung. Der Baum ist ein Blick auf die Daten, die andere stellen im code löschen kann, die 'Dateien', bevor Sie Ihre 'Ordner' ist erweitert in den Baum.

InformationsquelleAutor Juan Mendes | 2011-01-31

Schreibe einen Kommentar