Angular 角度7样式不同层次的垫树

Angular 角度7样式不同层次的垫树,angular,angular-material,material-design,angular7,Angular,Angular Material,Material Design,Angular7,我正在实现一个mat树,因为我需要在数据中有不同级别的缩进。目前,我基本上是从文档中复制代码,并对其进行调整以使其按我的方式工作(如删除+按钮),但基本上我仍处于。 现在,我想对这棵树的各个级别进行不同的风格设计,比如1级有背景灰、2级浅灰色和3级白色。我知道我的数据中最多有3级嵌套。 但是我不知道如何为每个级别指定样式。 到目前为止,我还没有在文件中找到任何东西;有解决办法吗 您需要获得层次结构级别,然后才能应用样式。让我举个例子 HTML: 很高兴你有一个stackblitz的链接,但也请在

我正在实现一个
mat树
,因为我需要在数据中有不同级别的缩进。目前,我基本上是从文档中复制代码,并对其进行调整以使其按我的方式工作(如删除+按钮),但基本上我仍处于。
现在,我想对这棵树的各个级别进行不同的风格设计,比如1级有背景灰、2级浅灰色和3级白色。我知道我的数据中最多有3级嵌套。
但是我不知道如何为每个级别指定样式。

到目前为止,我还没有在文件中找到任何东西;有解决办法吗

您需要获得层次结构级别,然后才能应用样式。让我举个例子

HTML:


很高兴你有一个stackblitz的链接,但也请在帖子中添加一些代码。特别是你试图实现的css Hi@John我没有实现任何css,因为我根本不知道如何为mat tree实现它。
<mat-tree [dataSource]="dataSource" [treeControl]="treeControl">
  <mat-tree-node *matTreeNodeDef="let node" matTreeNodeToggle 
      matTreeNodePadding level="level">
    <div [style.background]="getColor(node)">
      <button mat-icon-button disabled></button>      
      <mat-checkbox class="checklist-leaf-node"
                  [checked]="checklistSelection.isSelected(node)"
                  (change)="todoLeafItemSelectionToggle(node)">{{node.item}}</mat-checkbox>
    </div>
  </mat-tree-node>

  <!-- Other code is omitted for the brevity -->
getColor(node){
    let level = this.getLevel(node);
    let color = '';
    switch (level) {
            case 1:
                color = 'grey'
                break;
            case 2:
                color = 'lightgrey'
                break;
            default:
                color = 'white'
        }
    return color;
  }