如何使用“角度材质”按钮遍历树

时间:2018-10-01 02:50:38

标签: angular angular-material

我有一个树菜单,我希望可以通过导航菜单来选择树中的任何节点。我目前的操作方式如下:

<button mat-raised-button [matMenuTriggerFor]="tree_0">
  ChooseTree    
</button>

<mat-menu #tree_0="matMenu" [overlapTrigger]="false">
  <ng-template matMenuContent>
    <ng-container *ngFor= "let item of treeData.children">
        <button mat-menu-item *ngIf = "item"
            [matMenuTriggerFor]="tree_1"
            [matMenuTriggerData]="{items:item.children}">
          {{item.name}}
        </button>
      </ng-container>
    </ng-template>
</mat-menu>

<mat-menu #tree_1="matMenu" [overlapTrigger]="false">
  <ng-template matMenuContent let-items="items">
    <ng-container *ngFor= "let item of items">
        <button mat-menu-item *ngIf = "item">
          {{item.name}}
        </button>
      </ng-container>
    </ng-template>
</mat-menu>

但是,第一个问题是我必须为每个级别创建一个新的<mat-menu>。引用相同的模板不起作用。第二个问题(也是我更感兴趣的一个问题)是,当您从1悬停到2而又没有给下一级实例化的机会时,控制台中会出现错误。 。如何克服这些错误?这个StackBlitz是有效的演示。

0 个答案:

没有答案