如何以编程方式显示/隐藏物料表页脚?

时间:2019-10-17 09:14:57

标签: angular angular-material

是否有一种使用broker.xml变量来显示/隐藏物料表页脚的方法?我正在尝试构建一个自定义表组件,它可能具有或可能不具有页脚,像这样

@Input()

我想到的显而易见的事情是,将<my-component [showFooter]="false"></my-component> 放在组件定义内的*ngIf上。但是当我尝试使用

mat-footer-row

<tr *ngIf="showFooter" *matFooterRowDef="displayedColumns; sticky: true"></tr>

我从编译器中收到以下错误。

<td *ngIf="showFooter" mat-footer-cell *matFooterCellDef>{{someValue}}</td>

如果我无法使用Can't have multiple template bindings on one element. Use only one attribute prefixed with * 实现此目标,正确的方法是什么?

3 个答案:

答案 0 :(得分:3)

在单个元素上只能使用一个结构指令(用*表示)。

您可以使用ng-container

<ng-container *ngIf="showFooter">
  <td mat-footer-cell *matFooterCellDef>{{someValue}}</td>
</ng-container>

答案 1 :(得分:1)

您可以使用CSS隐藏它:

.mat-table {

  tfoot {
    display: none;
  }

  &.footer-visible {
    tfoot {
      display: table-footer-group;
    }
  }
}

然后在表格内

<table mat-table [class.footer-visible]="false">
...

答案 2 :(得分:1)

使用 CSS 和 mat-footer-row 的另一个选项:

<tr mat-footer-row *matFooterRowDef="displayedColumns" [style.display]="showFooter ? 'table-row' : 'none'"></tr>