angular-tree-component
angular-tree-component copied to clipboard
expandAll() method is very slow with large objects,even if virtual scroll is true
expandAll() method is very slow with large objects,even if virtual scroll is true.Is there any way do performance improvement with large data.
I found a workaround, setting the expandedNodeIds and calling update() worked and is very fast!
Here 's the code to add in your component that uses the tree:
@ViewChild(TreeComponent)
treeComponent: TreeComponent;
...
expandAll() {
// the native expandAll() of the treeCOmponent is very slow. Setting the expandedNodeIds is much faster
this.treeComponent.treeModel.expandedNodeIds = {};
this.treeComponent.treeModel.doForAll((node) => {
this.treeComponent.treeModel.expandedNodeIds[node.id] = true;
});
// doing the update without a timeout was expanding just the first level, with timeout, the whole tree is expanded!
setTimeout(() => {
this.treeComponent.treeModel.update();
});
}