我有一个树菜单,我希望可以通过导航菜单来选择树中的任何节点。我目前的操作方式如下:
<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是有效的演示。