angular--material---tree

在项目中需要用到tree,但是material的不同的tree有不同的用法。在未深入研究使用别人的案例时,踩了一个大坑,导致需求一直未能做出来,现在特此来记录一下使用。

1. DynamicDataSource---tree

不能够实现tree的完全expand/collapse.

 <mat-tree [dataSource]="dataSource" [treeControl]="treeControl">
    <mat-tree-node *matTreeNodeDef="let node" matTreeNodePadding matTreeNodePaddingIndent="25">
      <button mat-icon-button disabled></button>
      <!--<a [routerLink]='["/Detail"]' [queryParams]="{partId:node.value.countersConfigurations['partnerId'],id:node.value.id,aPorMDMCounterType:node.value.aPorMDMCounterType}" routerLinkActive="router-active">{{node.name}}</a>-->
      <a>{{node.counterNode.name}}</a>
    </mat-tree-node>
    <mat-tree-node *matTreeNodeDef="let node; when: hasChild" matTreeNodePadding
                   matTreeNodePaddingIndent="25" [ngClass]="{'header': node.level == 0}"
                   (click)="toggleNotLoadingNode(node);">
      <button mat-icon-button
              [attr.aria-label]="'toggle ' + node.counterNode.name" matTreeNodeToggle *ngIf="node.level != 0">
        <mat-icon class="mat-icon-rtl-mirror">
          {{treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'}}
        </mat-icon>
      </button>
      <span>{{node.counterNode.name }}</span>
      <div *ngIf="" class="loader"></div>
    </mat-tree-node>
  </mat-tree>

2. TreeFlatOverviewExample----tree

能够实现tree的完全expand/collapse.

<div>
  <div class="header">
    <span>Counters</span>
    <button mat-stroked-button type="button" (click)="ExpandAll()">ExpandAll</button>&nbsp;&nbsp;
    <button mat-stroked-button type="button" (click)="CollapseAll()">CollapseAll</button>
  </div>
  <mat-tree [dataSource]="dataSource" [treeControl]="treeControl">
    <!-- This is the tree node template for leaf nodes -->
    <mat-tree-node *matTreeNodeDef="let node" matTreeNodePadding>
      <!-- use a disabled button to provide padding for tree leaf -->
      <button mat-icon-button disabled></button>
      {{node.counterNode.name}}
    </mat-tree-node>
    <!-- This is the tree node template for expandable nodes -->
    <mat-tree-node *matTreeNodeDef="let node;when: hasChild" matTreeNodePadding>
      <button mat-icon-button matTreeNodeToggle
              [attr.aria-label]="'toggle ' + node.counterNode.name">
        <mat-icon class="mat-icon-rtl-mirror">
          {{treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'}}
        </mat-icon>
      </button>
      {{node.counterNode.name}}
    </mat-tree-node>
  </mat-tree>
</div>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值