首页 > 解决方案 > Angular 4+ 有条件地渲染 mat-menu(所有或部分 mat 菜单选项)

问题描述

你好,

我正在渲染一个垫子表,每行都有一个显示垫子菜单的日食(3个点)。现在,点击的每一行都显示相同的菜单选项说

  1. 清单项目 1
  2. 清单项目 2
  3. 清单项目 3

我的行有其他数据,我想使用所述数据来显示所有列表项或一些。

我尝试在 mat-menu 选项之一中使用 ngIf,但没有雪茄

     <mat-menu #menu="matMenu" >
        <ng-template matMenuContent let-someId="someId" let-eventOtherId="eventitherId" let-testcondition="condition">
          <a href="" *ngIf="testcondition === 'some item'"  mat-menu-item [routerLink]="[]">
            <mat-icon>info</mat-icon>
            <span>List Item 1</span>
          </a>
          <button mat-menu-item (click)="openDialog([someId])">
            <mat-icon>save_alt</mat-icon>
            <span>List Item 2</span>
          </button>
          <button  mat-menu-item (click)="openDialog([someId])">
            <mat-icon>add</mat-icon>
            <span>List Item 3</span>
          </button>
        </ng-template>
      </mat-menu>

所以理想情况下,如果 testcondition === 'some item' 我想显示列表项 1,如果 testcondition === 'some other item' 则呈现列表项 2

编辑:在挖掘了更多之后,事实证明let-testcondition="condition"不会评估任何东西。testcondition 应该有一个与之关联的值(来自我可以在控制台中看到的条件属性),但在 ng-container 中没有 testcondition 的值,即使 someId 和 eventOtherId 有一个值。非常感谢在模板中使用 let 变量的任何帮助

标签: angularangularjs-directiveangular-material

解决方案


推荐阅读