angular-tree-component icon indicating copy to clipboard operation
angular-tree-component copied to clipboard

expandAll() method is very slow with large objects,even if virtual scroll is true

Open poonamsinghlm opened this issue 2 years ago • 1 comments

expandAll() method is very slow with large objects,even if virtual scroll is true.Is there any way do performance improvement with large data.

poonamsinghlm avatar Mar 24 '22 09:03 poonamsinghlm

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();
    });
  }

rafaelceravolo avatar Oct 19 '22 16:10 rafaelceravolo