diff --git a/src/demo-app/tree/dynamic-tree-demo/dynamic-database.ts b/src/demo-app/tree/dynamic-tree-demo/dynamic-database.ts index 4a00dd90258..66f9d6de8b2 100644 --- a/src/demo-app/tree/dynamic-tree-demo/dynamic-database.ts +++ b/src/demo-app/tree/dynamic-tree-demo/dynamic-database.ts @@ -106,7 +106,10 @@ export class DynamicDataSource { new DynamicFlatNode(name, node.level + 1, this.database.isExpandable(name))); this.data.splice(index + 1, 0, ...nodes); } else { - this.data.splice(index + 1, children.length); + let count = 0; + for (let i = index + 1; i < this.data.length + && this.data[i].level > node.level; i++, count++) {} + this.data.splice(index + 1, count); } // notify the change diff --git a/src/material-examples/tree-dynamic/tree-dynamic-example.ts b/src/material-examples/tree-dynamic/tree-dynamic-example.ts index e8dba37e61f..7f9b4052826 100644 --- a/src/material-examples/tree-dynamic/tree-dynamic-example.ts +++ b/src/material-examples/tree-dynamic/tree-dynamic-example.ts @@ -100,7 +100,10 @@ export class DynamicDataSource { new DynamicFlatNode(name, node.level + 1, this.database.isExpandable(name))); this.data.splice(index + 1, 0, ...nodes); } else { - this.data.splice(index + 1, children.length); + let count = 0; + for (let i = index + 1; i < this.data.length + && this.data[i].level > node.level; i++, count++) {} + this.data.splice(index + 1, count); } // notify the change