小智 6

虽然这是一个老问题,但我会为那些再次询问如何做的人回答。

首先,将 + 按钮添加到叶节点:

<button mat-icon-button (click)="addNewItem(node)"><mat-icon>add</mat-icon></button>
Run Code Online (Sandbox Code Playgroud)

然后,使用一个小技巧来刷新树。

refreshTree() {
    let _data = this.dataSource.data;
    this.dataSource.data = [];
    this.dataSource.data = _data;
  }
Run Code Online (Sandbox Code Playgroud)

我在数据更改订阅中添加了对refreshTree函数的调用:

_database.dataChange.subscribe(data => {
        this.dataSource.data = data;
        this.refreshTree();
      });
Run Code Online (Sandbox Code Playgroud)